Refs #32489 -- Doc'd and tested iter_test_cases() support for an iterable of tests.
This commit is contained in:
parent
a2d5ea626e
commit
d8a4bcffdb
|
@ -235,9 +235,13 @@ def setup_databases(
|
||||||
return old_names
|
return old_names
|
||||||
|
|
||||||
|
|
||||||
def iter_test_cases(suite):
|
def iter_test_cases(tests):
|
||||||
"""Return an iterator over a test suite's unittest.TestCase objects."""
|
"""
|
||||||
for test in suite:
|
Return an iterator over a test suite's unittest.TestCase objects.
|
||||||
|
|
||||||
|
The tests argument can also be an iterable of TestCase objects.
|
||||||
|
"""
|
||||||
|
for test in tests:
|
||||||
if isinstance(test, TestCase):
|
if isinstance(test, TestCase):
|
||||||
yield test
|
yield test
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -89,6 +89,20 @@ class TestSuiteTests(unittest.TestCase):
|
||||||
'Tests1.test1', 'Tests1.test2', 'Tests2.test1', 'Tests2.test2',
|
'Tests1.test1', 'Tests1.test2', 'Tests2.test1', 'Tests2.test2',
|
||||||
])
|
])
|
||||||
|
|
||||||
|
def test_iter_test_cases_iterable_of_tests(self):
|
||||||
|
class Tests(unittest.TestCase):
|
||||||
|
def test1(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def test2(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
tests = list(unittest.defaultTestLoader.loadTestsFromTestCase(Tests))
|
||||||
|
actual_tests = iter_test_cases(tests)
|
||||||
|
self.assertTestNames(actual_tests, expected=[
|
||||||
|
'Tests.test1', 'Tests.test2',
|
||||||
|
])
|
||||||
|
|
||||||
def test_iter_test_cases_custom_test_suite_class(self):
|
def test_iter_test_cases_custom_test_suite_class(self):
|
||||||
suite = self.make_test_suite(suite_class=MySuite)
|
suite = self.make_test_suite(suite_class=MySuite)
|
||||||
tests = iter_test_cases(suite)
|
tests = iter_test_cases(suite)
|
||||||
|
|
Loading…
Reference in New Issue