diff --git a/src/_pytest/main.py b/src/_pytest/main.py index ad65ed29929..fa8d5457f1c 100644 --- a/src/_pytest/main.py +++ b/src/_pytest/main.py @@ -40,6 +40,14 @@ class ExitCode(enum.IntEnum): #: pytest couldn't find tests NO_TESTS_COLLECTED = 5 + @classmethod + def _missing_(cls, value): + pseudo_member = int.__new__(cls, value) + pseudo_member._name_ = "CUSTOM" + pseudo_member._value_ = value + cls._value2member_map_[value] = pseudo_member + return pseudo_member + def pytest_addoption(parser): parser.addini( diff --git a/testing/test_main.py b/testing/test_main.py new file mode 100644 index 00000000000..0450bcda9cc --- /dev/null +++ b/testing/test_main.py @@ -0,0 +1,11 @@ +from _pytest.main import ExitCode + + +def test_ExitCode(): + exc_0 = ExitCode(0) + assert exc_0 == 0 + assert repr(exc_0) == "" + + exc_99 = ExitCode(99) + assert exc_99 == 99 + assert repr(exc_99) == ""