diff --git a/allure-pytest/src/utils.py b/allure-pytest/src/utils.py index 6c671886..bf23779e 100644 --- a/allure-pytest/src/utils.py +++ b/allure-pytest/src/utils.py @@ -106,7 +106,7 @@ def allure_suite_labels(item): clazz = possibly_clazz if tail else None file_name, path = islice(chain(reversed(head.rsplit('/', 1)), [None]), 2) module = file_name.split('.')[0] - package = path.replace('/', '.') + package = path.replace('/', '.') if path else None pairs = zip([LabelType.PARENT_SUITE, LabelType.SUITE, LabelType.SUB_SUITE], [package, module, clazz]) return [(name, value) for name, value in pairs if value is not None] diff --git a/allure-pytest/test/labels/package/package_less_test.py b/allure-pytest/test/labels/package/package_less_test.py new file mode 100644 index 00000000..b72ed556 --- /dev/null +++ b/allure-pytest/test/labels/package/package_less_test.py @@ -0,0 +1,17 @@ +def test_with_no_package(testdir, request): + """ + Test where parent package is None + >>> allure_report = getfixture('allure_report_with_params')('-p pytester') + >>> assert_that(allure_report, + ... has_test_case('test_with_no_package', + ... with_status('passed') + ... ) + ... ) + """ + testdir.makepyfile(''' + def test_simple(request): + pass + ''') + result = testdir.runpytest_subprocess('--alluredir=allure') + assert result.ret == 0 +