diff --git a/tests/conftest.py b/tests/conftest.py index a862030fff..028c19bc5f 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -85,3 +85,11 @@ def pytest_runtest_makereport(item, call): # be "setup", "call", "teardown" setattr(item, "rep_" + rep.when, rep) + + # In the event of module scoped fixtures, also mark failure in module. + module = item + while module is not None and not isinstance(module, pytest.Module): + module = module.parent + if module is not None: + if rep.when == 'call' and (rep.failed or rep.skipped): + module.module_test_failure = True diff --git a/tests/lib/testing_classes.py b/tests/lib/testing_classes.py index 7dae9a762f..7700381aa6 100644 --- a/tests/lib/testing_classes.py +++ b/tests/lib/testing_classes.py @@ -218,11 +218,7 @@ class ModuleUnitTest(BaseTest): yield mongo_client[self.TEST_OPENPYPE_NAME]["settings"] def is_test_failed(self, request): - # if request.node doesn't have rep_call, something failed - try: - return request.node.rep_call.failed - except AttributeError: - return True + return getattr(request.node, "module_test_failure", False) class PublishTest(ModuleUnitTest):