Skip to content

Commit cd6b0f2

Browse files
committed
Runner improvements
1 parent d77e543 commit cd6b0f2

File tree

3 files changed

+62
-37
lines changed

3 files changed

+62
-37
lines changed

atest/run.py

Lines changed: 45 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,65 @@
11
#!/usr/bin/env python
2-
3-
42
import platform
5-
from os.path import abspath, dirname, join
3+
import shutil
64
import sys
5+
from os.path import abspath, dirname, isdir, join
6+
from pathlib import Path
77

8-
from robot import run, rebot
8+
from robot import rebot, run
99
from robot.version import VERSION as rf_version
1010
from robotstatuschecker import process_output
1111

12-
13-
library_variants = ['Hybrid', 'Dynamic', 'ExtendExisting']
12+
library_variants = ["Hybrid", "Dynamic", "ExtendExisting"]
1413
curdir = dirname(abspath(__file__))
15-
outdir = join(curdir, 'results')
16-
tests = join(curdir, 'tests.robot')
17-
tests_types = join(curdir, 'tests_types.robot')
18-
sys.path.insert(0, join(curdir, '..', 'src'))
14+
outdir = join(curdir, "results")
15+
if isdir(outdir):
16+
shutil.rmtree(outdir, ignore_errors=True)
17+
tests = join(curdir, "tests.robot")
18+
tests_types = join(curdir, "tests_types.robot")
19+
plugin_api = join(curdir, "plugin_api")
20+
sys.path.insert(0, join(curdir, "..", "src"))
1921
python_version = platform.python_version()
2022
for variant in library_variants:
21-
output = join(outdir, 'lib-{}-python-{}-robot-{}.xml'.format(variant, python_version, rf_version))
22-
rc = run(tests, name=variant, variable='LIBRARY:%sLibrary' % variant,
23-
output=output, report=None, log=None, loglevel='debug')
23+
output = join(outdir, "lib-{}-python-{}-robot-{}.xml".format(variant, python_version, rf_version))
24+
rc = run(
25+
tests,
26+
name=variant,
27+
variable="LIBRARY:%sLibrary" % variant,
28+
output=output,
29+
report=None,
30+
log=None,
31+
loglevel="debug",
32+
)
2433
if rc > 250:
2534
sys.exit(rc)
2635
process_output(output, verbose=False)
27-
output = join(outdir, 'lib-DynamicTypesLibrary-python-{}-robot-{}.xml'.format(python_version, rf_version))
36+
output = join(outdir, "lib-DynamicTypesLibrary-python-{}-robot-{}.xml".format(python_version, rf_version))
2837
exclude = "py310" if sys.version_info < (3, 10) else ""
29-
rc = run(tests_types, name='Types', output=output, report=None, log=None, loglevel='debug', exclude=exclude)
38+
rc = run(tests_types, name="Types", output=output, report=None, log=None, loglevel="debug", exclude=exclude)
39+
if rc > 250:
40+
sys.exit(rc)
41+
process_output(output, verbose=False)
42+
output = join(outdir, "lib-PluginApi-python-{}-robot-{}.xml".format(python_version, rf_version))
43+
rc = run(plugin_api, name="Plugin", output=output, report=None, log=None, loglevel="debug")
3044
if rc > 250:
3145
sys.exit(rc)
3246
process_output(output, verbose=False)
33-
print('\nCombining results.')
34-
library_variants.append('DynamicTypesLibrary')
35-
rc = rebot(*(join(outdir, 'lib-{}-python-{}-robot-{}.xml'.format(variant, python_version, rf_version)) for variant in library_variants),
36-
**dict(name='Acceptance Tests', outputdir=outdir, log='log-python-{}-robot-{}.html'.format(python_version, rf_version),
37-
report='report-python-{}-robot-{}.html'.format(python_version, rf_version)))
47+
print("\nCombining results.")
48+
library_variants.append("DynamicTypesLibrary")
49+
xml_files = [str(xml_file) for xml_file in Path(outdir).glob("*.xml")]
50+
for xxx in xml_files:
51+
print(xxx)
52+
rc = rebot(
53+
*xml_files,
54+
**dict(
55+
name="Acceptance Tests",
56+
outputdir=outdir,
57+
log="log-python-{}-robot-{}.html".format(python_version, rf_version),
58+
report="report-python-{}-robot-{}.html".format(python_version, rf_version),
59+
),
60+
)
3861
if rc == 0:
39-
print('\nAll tests passed/failed as expected.')
62+
print("\nAll tests passed/failed as expected.")
4063
else:
41-
print('\n%d test%s failed.' % (rc, 's' if rc != 1 else ''))
64+
print("\n%d test%s failed." % (rc, "s" if rc != 1 else ""))
4265
sys.exit(rc)

tasks.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -122,11 +122,11 @@ def init_labels(ctx, username=None, password=None):
122122
@task
123123
def lint(ctx):
124124
print("Run flake8")
125-
ctx.run("flake8 --config .flake8 src/ tasks.py")
125+
ctx.run("flake8 --config .flake8 src/ tasks.py utest/run.py atest/run.py")
126126
print("Run black")
127-
ctx.run("black --target-version py36 --line-length 120 src/ tasks.py")
127+
ctx.run("black --target-version py36 --line-length 120 src/ tasks.py utest/run.py atest/run.py")
128128
print("Run isort")
129-
ctx.run("isort src/ tasks.py")
129+
ctx.run("isort src/ tasks.py utest/run.py atest/run.py")
130130
print("Run tidy")
131131
in_ci = os.getenv("GITHUB_WORKFLOW")
132132
print(f"Lint Robot files {'in ci' if in_ci else ''}")

utest/run.py

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,36 @@
11
#!/usr/bin/env python
22
import argparse
33
import platform
4-
from os.path import abspath, dirname, join
54
import sys
5+
from os.path import abspath, dirname, join
66

77
import pytest
88
from robot.version import VERSION as rf_version
99

1010
curdir = dirname(abspath(__file__))
11-
atest_dir = join(curdir, '..', 'atest')
11+
atest_dir = join(curdir, "..", "atest")
1212
python_version = platform.python_version()
13-
xunit_report = join(atest_dir, 'results', 'xunit-python-{}-robot{}.xml'.format(python_version, rf_version))
14-
src = join(curdir, '..', 'src')
13+
xunit_report = join(atest_dir, "results", "xunit-python-{}-robot{}.xml".format(python_version, rf_version))
14+
src = join(curdir, "..", "src")
1515
sys.path.insert(0, src)
1616
sys.path.insert(0, atest_dir)
1717

1818
parser = argparse.ArgumentParser()
19-
parser.add_argument('--no-cov', dest='cov', action='store_false')
20-
parser.add_argument('--cov', dest='cov', action='store_true')
19+
parser.add_argument("--no-cov", dest="cov", action="store_false")
20+
parser.add_argument("--cov", dest="cov", action="store_true")
2121
parser.set_defaults(cov=True)
2222
args = parser.parse_args()
2323

2424
pytest_args = [
25-
'-p', 'no:cacheprovider',
26-
'--junitxml=%s' % xunit_report,
27-
'-o', 'junit_family=xunit2',
28-
'--showlocals',
29-
curdir
25+
"-p",
26+
"no:cacheprovider",
27+
"--junitxml=%s" % xunit_report,
28+
"-o",
29+
"junit_family=xunit2",
30+
"--showlocals",
31+
curdir,
3032
]
3133
if args.cov:
32-
pytest_args.insert(0, '--cov=%s' % src)
34+
pytest_args.insert(0, "--cov=%s" % src)
3335
rc = pytest.main(pytest_args)
3436
sys.exit(rc)

0 commit comments

Comments
 (0)