Exemplo n.º 1
0
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)
Exemplo n.º 2
0
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")
Exemplo n.º 3
0
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
Exemplo n.º 4
0
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
Exemplo n.º 5
0
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
Exemplo n.º 6
0
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)
Exemplo n.º 7
0
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)
Exemplo n.º 8
0
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
Exemplo n.º 9
0
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)
Exemplo n.º 10
0
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
Exemplo n.º 11
0
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)
Exemplo n.º 12
0
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
Exemplo n.º 13
0
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)
Exemplo n.º 14
0
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
Exemplo n.º 15
0
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)
Exemplo n.º 16
0
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)
Exemplo n.º 17
0
def atests(*opts):
    run_robot(*opts)
    process_output(join(OUTPUT_ROOT, 'output.xml'))
    return rebot(join(OUTPUT_ROOT, 'output.xml'), outputdir=OUTPUT_ROOT)
Exemplo n.º 18
0
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.')
Exemplo n.º 19
0
def atests(*opts):
    python(*opts)
    process_output(join(OUTPUT_DIR, 'output.xml'))
    return rebot(join(OUTPUT_DIR, 'output.xml'), outputdir=OUTPUT_DIR)