mirror of
https://github.com/python/cpython.git
synced 2025-08-03 16:39:00 +00:00
gh-84867: Do not load tests from TestCase and FunctionTestCase (GH-100497)
This commit is contained in:
parent
d13f782a18
commit
66d1d7eb06
3 changed files with 48 additions and 5 deletions
|
@ -82,6 +82,22 @@ class Test_TestLoader(unittest.TestCase):
|
|||
self.assertIsInstance(suite, loader.suiteClass)
|
||||
self.assertEqual(list(suite), [Foo('runTest')])
|
||||
|
||||
# "Do not load any tests from `TestCase` class itself."
|
||||
def test_loadTestsFromTestCase__from_TestCase(self):
|
||||
loader = unittest.TestLoader()
|
||||
|
||||
suite = loader.loadTestsFromTestCase(unittest.TestCase)
|
||||
self.assertIsInstance(suite, loader.suiteClass)
|
||||
self.assertEqual(list(suite), [])
|
||||
|
||||
# "Do not load any tests from `FunctionTestCase` class."
|
||||
def test_loadTestsFromTestCase__from_FunctionTestCase(self):
|
||||
loader = unittest.TestLoader()
|
||||
|
||||
suite = loader.loadTestsFromTestCase(unittest.FunctionTestCase)
|
||||
self.assertIsInstance(suite, loader.suiteClass)
|
||||
self.assertEqual(list(suite), [])
|
||||
|
||||
################################################################
|
||||
### /Tests for TestLoader.loadTestsFromTestCase
|
||||
|
||||
|
@ -103,6 +119,19 @@ class Test_TestLoader(unittest.TestCase):
|
|||
expected = [loader.suiteClass([MyTestCase('test')])]
|
||||
self.assertEqual(list(suite), expected)
|
||||
|
||||
# "This test ensures that internal `TestCase` subclasses are not loaded"
|
||||
def test_loadTestsFromModule__TestCase_subclass_internals(self):
|
||||
# See https://github.com/python/cpython/issues/84867
|
||||
m = types.ModuleType('m')
|
||||
# Simulate imported names:
|
||||
m.TestCase = unittest.TestCase
|
||||
m.FunctionTestCase = unittest.FunctionTestCase
|
||||
|
||||
loader = unittest.TestLoader()
|
||||
suite = loader.loadTestsFromModule(m)
|
||||
self.assertIsInstance(suite, loader.suiteClass)
|
||||
self.assertEqual(list(suite), [])
|
||||
|
||||
# "This method searches `module` for classes derived from TestCase"
|
||||
#
|
||||
# What happens if no tests are found (no TestCase instances)?
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue