python,unittest: don't collect abstract classes

Fix #12275.
This commit is contained in:
Ran Benita
2024-05-13 12:27:20 +03:00
parent eea04c2891
commit 37489d3c6c
5 changed files with 67 additions and 2 deletions

View File

@@ -262,6 +262,32 @@ class TestClass:
result = pytester.runpytest()
assert result.ret == ExitCode.NO_TESTS_COLLECTED
def test_abstract_class_is_not_collected(self, pytester: Pytester) -> None:
"""Regression test for #12275 (non-unittest version)."""
pytester.makepyfile(
"""
import abc
class TestBase(abc.ABC):
@abc.abstractmethod
def abstract1(self): pass
@abc.abstractmethod
def abstract2(self): pass
def test_it(self): pass
class TestPartial(TestBase):
def abstract1(self): pass
class TestConcrete(TestPartial):
def abstract2(self): pass
"""
)
result = pytester.runpytest()
assert result.ret == ExitCode.OK
result.assert_outcomes(passed=1)
class TestFunction:
def test_getmodulecollector(self, pytester: Pytester) -> None: