def atest(ctx, zip=None): """Runs Robot Framework acceptance tests.""" args = [ "robot", "--exitonerror", "--nostatusrc", "--pythonpath", ".", "--loglevel", "TRACE", "--report", "NONE", "--log", "NONE", "--outputdir", str(ATEST_OUTPUT), str(ATEST), ] ctx.run(" ".join(args)) output_xml = str(ATEST_OUTPUT / "output.xml") print(f"Check: {output_xml}") robotstatuschecker.process_output(output_xml, verbose=False) print("Generate report and log files.") rebot_exit = False if zip else True rc = rebot_cli(["--outputdir", str(ATEST_OUTPUT), output_xml], exit=False) if zip: print(f"Zip file created to: {_create_zip()}") print("DONE") raise Exit(rc)
def _run_robot(extra_args=None): os.environ["ROBOT_SYSLOG_FILE"] = str(atest_output / "syslog.txt") pabot_args = [ sys.executable, "-m", "pabot.pabot", "--pabotlib", "--verbose" ] default_args = [ "--exclude", "Not-Implemented", "--loglevel", "DEBUG", "--report", "NONE", "--log", "NONE", "--outputdir", str(atest_output), ] if platform.platform().startswith("Windows"): default_args.extend(["--exclude", "No-Windows-Support"]) default_args.append("atest/test") process = subprocess.Popen(pabot_args + (extra_args or []) + default_args) process.wait(600) output_xml = str(atest_output / "output.xml") print(f"Process {output_xml}") robotstatuschecker.process_output(output_xml, verbose=False) rebot_cli(["--outputdir", str(atest_output), output_xml]) print("DONE")
def _run_tests_and_process_output(robot_file): results = join(CURDIR, "results") output = join(results, "output.xml") if exists(results): rmtree(results) run(join(CURDIR, robot_file), output=output, log=None, report=None, loglevel="DEBUG") process_output(output) rebot(output, outputdir=results) return output
def process_output(browser, cli_options): print('Verifying results...') output = os.path.join(env.RESULTS_DIR, 'output.xml') robotstatuschecker.process_output(output, verbose=False) options = [opt.format(browser=browser) for opt in REBOT_OPTIONS] try: rebot_cli(options + cli_options + [output]) except SystemExit as exit: return exit.code
def process_output(browser): print('Verifying results...') options = [] output = os.path.join(RESULTS_DIR, 'output.xml') robotstatuschecker.process_output(output, verbose=False) options.extend([opt.format(browser=browser) for opt in REBOT_OPTIONS]) try: rebot_cli(options + [output]) except SystemExit as exit: return exit.code
def atests(*opts): if os.name == 'java': os_includes = get_os_includes(os._name) jython(*(os_includes+opts)) process_output(join(OUTPUT_JYTHON, 'output.xml')) return rebot(join(OUTPUT_JYTHON, 'output.xml'), outputdir=OUTPUT_JYTHON) else: os_includes = get_os_includes(os.name) python(*(os_includes+opts)) process_output(join(OUTPUT_PYTHON, 'output.xml')) return rebot(join(OUTPUT_PYTHON, 'output.xml'), outputdir=OUTPUT_PYTHON)
def atests(*opts): if os.name == 'java': jython(*opts) process_output(join(OUTPUT_JYTHON, 'output.xml')) return rebot(join(OUTPUT_JYTHON, 'output.xml'), outputdir=OUTPUT_JYTHON) elif os.name == 'nt': os_includes = ('--include', 'windows') else: os_includes = ('--exclude', 'windows') python(*(os_includes+opts)) process_output(join(OUTPUT_PYTHON, 'output.xml')) return rebot(join(OUTPUT_PYTHON, 'output.xml'), outputdir=OUTPUT_PYTHON)
def _run_tests_and_process_output(robot_file): results = join(CURDIR, "results") output = join(results, "output.xml") if exists(results): rmtree(results) if RF3: run(join(CURDIR, robot_file), output=output, log=None, report=None, loglevel="DEBUG", exclude="rf3unsupported") else: run(join(CURDIR, robot_file), output=output, log=None, report=None, loglevel="DEBUG") process_output(output) rebot(output, outputdir=results) return output
def atests(*opts): if os.name == 'java': os_includes = get_os_includes(os._name) jython(*(os_includes + opts)) process_output(join(OUTPUT_JYTHON, 'output.xml')) return rebot(join(OUTPUT_JYTHON, 'output.xml'), outputdir=OUTPUT_JYTHON) else: os_includes = get_os_includes(os.name) python(*(os_includes + opts)) process_output(join(OUTPUT_PYTHON, 'output.xml')) return rebot(join(OUTPUT_PYTHON, 'output.xml'), outputdir=OUTPUT_PYTHON)
def _run_tests_and_process_output(robot_file): results = join(CURDIR, 'results') output = join(results, 'output.xml') if exists(results): rmtree(results) run(join(CURDIR, robot_file), output=output, log=None, report=None, loglevel='DEBUG') process_output(output) rebot(output, outputdir=results) return output
def atests(*opts): if os.name == 'java': jython(*opts) process_output(join(OUTPUT_JYTHON, 'output.xml')) return rebot(join(OUTPUT_JYTHON, 'output.xml'), outputdir=OUTPUT_JYTHON) elif os.name == 'nt': os_includes = ('--include', 'windows') else: os_includes = ('--exclude', 'windows') python(*(os_includes + opts)) process_output(join(OUTPUT_PYTHON, 'output.xml')) return rebot(join(OUTPUT_PYTHON, 'output.xml'), outputdir=OUTPUT_PYTHON)
def _run_pabot(extra_args=None, include_mac=False): os.environ["ROBOT_SYSLOG_FILE"] = str(ATEST_OUTPUT / "syslog.txt") pabot_args = [ sys.executable, "-m", "pabot.pabot", "--pabotlib", "--pabotlibport", "0", "--processes", EXECUTOR_COUNT, "--artifacts", "png,webm,zip", "--artifactsinsubfolders", ] default_args = [ "--xunit", "robot_xunit.xml", "--exclude", "not-implemented", "--loglevel", "DEBUG", "--report", "NONE", "--log", "NONE", "--outputdir", str(ATEST_OUTPUT), ] default_args = _add_skips(default_args, include_mac) default_args.append("atest/test") process = subprocess.Popen(pabot_args + (extra_args or []) + default_args, env=os.environ) process.wait(ATEST_TIMEOUT) output_xml = str(ATEST_OUTPUT / "output.xml") print(f"Process {output_xml}") robotstatuschecker.process_output(output_xml, verbose=False) rc = rebot_cli(["--outputdir", str(ATEST_OUTPUT), output_xml], exit=False) print(f"DONE rc=({rc})") return rc
def atest_robot(c, zip=None): """Run atest with Robot Framework Arguments: zip: Create zip file from output files. """ os.environ["ROBOT_SYSLOG_FILE"] = str(ATEST_OUTPUT / "syslog.txt") command_args = [ sys.executable, "-m", "robot", "--exclude", "not-implemented", "--loglevel", "DEBUG", "--report", "NONE", "--log", "NONE", "--xunit", "robot_xunit.xml", "--outputdir", str(ATEST_OUTPUT), ] command_args = _add_skips(command_args) command_args.append("atest/test") env = os.environ.copy() process = subprocess.Popen(command_args, env=env) process.wait(ATEST_TIMEOUT) output_xml = str(ATEST_OUTPUT / "output.xml") print(f"Process {output_xml}") robotstatuschecker.process_output(output_xml, verbose=False) rc = rebot_cli(["--outputdir", str(ATEST_OUTPUT), output_xml], exit=False) if zip: _clean_zip_dir() print(f"Zip file created to: {_create_zip(rc)}") _clean_pabot_results(rc) print(f"DONE rc=({rc})") sys.exit(rc)
def _run_pabot(extra_args=None, exit=True): os.environ["ROBOT_SYSLOG_FILE"] = str(ATEST_OUTPUT / "syslog.txt") pabot_args = [ sys.executable, "-m", "pabot.pabot", "--pabotlib", "--pabotlibport", "0", "--artifacts", "png,webm,zip", "--artifactsinsubfolders", ] default_args = [ "--exclude", "Not-Implemented", "--loglevel", "DEBUG", "--report", "NONE", "--log", "NONE", "--outputdir", str(ATEST_OUTPUT), ] if platform.platform().startswith("Windows"): default_args.extend(["--exclude", "No-Windows-Support"]) default_args.append("atest/test") process = subprocess.Popen(pabot_args + (extra_args or []) + default_args) process.wait(600) output_xml = str(ATEST_OUTPUT / "output.xml") print(f"Process {output_xml}") robotstatuschecker.process_output(output_xml, verbose=False) rc = rebot_cli(["--outputdir", str(ATEST_OUTPUT), output_xml], exit=exit) print("DONE") return rc
mkdir(results) if not arguments: print 'Running unit tests with %s.' % interpreter rc = subprocess.call([interpreter, join(curdir, 'utest', 'run.py')]) print if rc != 0: print '%d unit test%s failed.' % (rc, 's' if rc != 1 else '') sys.exit(rc) arguments = [join(curdir, 'atest')] command = ['python', '-m', 'robot.run', '--variable', 'INTERPRETER:%s' % interpreter, '--name', '%s Remote Server' % splitext(basename(interpreter))[0].title(), '--metadata', 'Server_Interpreter:%s' % interpreter, '--noncritical', 'skip', '--output', output, '--log', 'NONE', '--report', 'NONE'] + arguments print 'Running acceptance tests with command:\n%s' % ' '.join(command) subprocess.call(command) print print 'Verifying results.' robotstatuschecker.process_output(output) rc = robot.rebot(output, outputdir=results, noncritical='skip') print if rc == 0: print 'All tests passed.' else: print '%d acceptance test%s failed.' % (rc, 's' if rc != 1 else '') sys.exit(rc)
if not arguments: print 'Running unit tests with %s.' % interpreter rc = subprocess.call([interpreter, join(curdir, 'utest', 'run.py')]) print if rc != 0: print '%d unit test%s failed.' % (rc, 's' if rc != 1 else '') sys.exit(rc) arguments = [join(curdir, 'atest')] command = [ 'python', '-m', 'robot.run', '--variable', 'INTERPRETER:%s' % interpreter, '--name', '%s Remote Server' % splitext(basename(interpreter))[0].title(), '--metadata', 'Server_Interpreter:%s' % interpreter, '--noncritical', 'skip', '--output', output, '--log', 'NONE', '--report', 'NONE' ] + arguments print 'Running acceptance tests with command:\n%s' % ' '.join(command) subprocess.call(command) print print 'Verifying results.' robotstatuschecker.process_output(output) rc = robot.rebot(output, outputdir=results, noncritical='skip') print if rc == 0: print 'All tests passed.' else: print '%d acceptance test%s failed.' % (rc, 's' if rc != 1 else '') sys.exit(rc)
def atests(*opts): run_robot(*opts) process_output(join(OUTPUT_ROOT, 'output.xml')) return rebot(join(OUTPUT_ROOT, 'output.xml'), outputdir=OUTPUT_ROOT)
sys.path.insert(0, join(curdir, '..', 'src')) python_version = platform.python_version() for variant in library_variants: output = join( outdir, 'lib-%s-python-%s-robot-%s.xml' % (variant, python_version, rf_version)) rc = run(tests, name=variant, variable='LIBRARY:%sLibrary' % variant, output=output, report=None, log=None, loglevel='debug') if rc > 250: sys.exit(rc) process_output(output, verbose=False) output = join( outdir, 'lib-DynamicTypesLibrary-python-%s-robot-%s.xml' % (python_version, rf_version)) exclude = 'py3' if sys.version_info < (3, ) else '' rc = run(tests_types, name='Types', output=output, report=None, log=None, loglevel='debug', exclude=exclude) if rc > 250: sys.exit(rc) process_output(output, verbose=False) print('\nCombining results.')
def atests(*opts): python(*opts) process_output(join(OUTPUT_DIR, 'output.xml')) return rebot(join(OUTPUT_DIR, 'output.xml'), outputdir=OUTPUT_DIR)