summaryrefslogtreecommitdiffstats
path: root/Lib/unittest/test/test_loader.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/unittest/test/test_loader.py')
-rw-r--r--Lib/unittest/test/test_loader.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/Lib/unittest/test/test_loader.py b/Lib/unittest/test/test_loader.py
index de2268c..2400182 100644
--- a/Lib/unittest/test/test_loader.py
+++ b/Lib/unittest/test/test_loader.py
@@ -102,6 +102,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
@@ -123,6 +139,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)?