diff --git a/conftest.py b/conftest.py index 205bf867fee..53729f3fd83 100644 --- a/conftest.py +++ b/conftest.py @@ -178,6 +178,8 @@ def _collect_item_metadata(item): result["testDeclaration"] = "flaky" elif result["details"].startswith("bug"): result["testDeclaration"] = "bug" + elif result["details"].startswith("incomplete_test_app"): + result["testDeclaration"] = "incompleteTestApp" elif result["details"].startswith("missing_feature"): result["testDeclaration"] = "notImplemented" elif "got empty parameter set" in result["details"]: diff --git a/tests/test_the_test/test_manifest.py b/tests/test_the_test/test_manifest.py index 9c641e81dab..0462197ca28 100644 --- a/tests/test_the_test/test_manifest.py +++ b/tests/test_the_test/test_manifest.py @@ -57,7 +57,7 @@ def assert_in(elements, module, nodeid): def assert_valid_declaration(declaration): assert isinstance(declaration, str) - if re.match(r"^(bug|flaky|irrelevant|missing_feature)( \(.+\))?$", declaration): + if re.match(r"^(bug|flaky|irrelevant|missing_feature|incomplete_test_app)( \(.+\))?$", declaration): return # must be a version declaration or semver spec diff --git a/utils/__init__.py b/utils/__init__.py index 7b8ca702ebb..588bd879bca 100644 --- a/utils/__init__.py +++ b/utils/__init__.py @@ -6,7 +6,7 @@ from utils._weblog import weblog from utils._context.core import context from utils._context._scenarios import scenarios -from utils._decorators import bug, irrelevant, missing_feature, rfc, flaky +from utils._decorators import bug, irrelevant, missing_feature, rfc, flaky, incomplete_test_app from utils import interfaces, _remote_config as remote_config from utils.interfaces._core import ValidationError from utils._features import features @@ -17,6 +17,7 @@ "context", "features", "flaky", + "incomplete_test_app", "interfaces", "irrelevant", "missing_feature", diff --git a/utils/_decorators.py b/utils/_decorators.py index e5e0435caf1..7838abad0b1 100644 --- a/utils/_decorators.py +++ b/utils/_decorators.py @@ -113,6 +113,13 @@ def missing_feature(condition=None, library=None, weblog_variant=None, reason=No return partial(decorator, skip, force_skip, condition, "missing_feature", reason, _get_expected_failure_item) +def incomplete_test_app(condition=None, library=None, weblog_variant=None, reason=None): + """Decorator, allow to mark a test function/class as not compatible with the tested application""" + skip = _should_skip(library=library, weblog_variant=weblog_variant, condition=condition) + noxfail = False + return partial(decorator, skip, noxfail, condition, "incomplete_test_app", reason, _get_expected_failure_item) + + def irrelevant(condition=None, library=None, weblog_variant=None, reason=None): """decorator, allow to mark a test function/class as not relevant""" skip = _should_skip(library=library, weblog_variant=weblog_variant, condition=condition) @@ -138,13 +145,6 @@ def flaky(condition=None, library=None, weblog_variant=None, reason=None): return partial(decorator, skip, noxfail, condition, "flaky", reason, _get_expected_failure_item) -def incomplete_test_app(condition=None, library=None, weblog_variant=None, reason=None): - """Decorator, allow to mark a test function/class as not compatible with the tested application""" - skip = _should_skip(library=library, weblog_variant=weblog_variant, condition=condition) - noxfail = False - return partial(decorator, skip, noxfail, condition, "incomplete_test_app", reason, _get_expected_failure_item) - - def released( cpp=None, dotnet=None,