fix: test module + test case + test method name

This commit is contained in:
David 2024-09-04 19:43:05 +02:00
parent 349e9c67f3
commit 97a9b604a3
No known key found for this signature in database
GPG key ID: AB15A6AF1101390D

View file

@ -266,23 +266,29 @@ def _run_unittest(
):
frappe.db.begin()
test_suite = unittest.TestSuite()
final_test_suite = unittest.TestSuite()
if not isinstance(modules, list | tuple):
modules = [modules]
def iterate_suite(suite):
for test in suite:
if isinstance(test, unittest.TestSuite):
yield from iterate_suite(test)
elif isinstance(test, unittest.TestCase):
yield test
for module in modules:
if case:
module_test_cases = unittest.TestLoader().loadTestsFromTestCase(getattr(module, case))
test_suite = unittest.TestLoader().loadTestsFromTestCase(getattr(module, case))
else:
module_test_cases = unittest.TestLoader().loadTestsFromModule(module)
test_suite = unittest.TestLoader().loadTestsFromModule(module)
if tests:
for each in module_test_cases:
for test_case in each.__dict__["_tests"]:
if test_case.__dict__["_testMethodName"] in tests:
test_suite.addTest(test_case)
for test_case in iterate_suite(test_suite):
if test_case._testMethodName in tests:
final_test_suite.addTest(test_case)
else:
test_suite.addTest(module_test_cases)
final_test_suite.addTest(test_suite)
if junit_xml_output:
runner = unittest_runner(verbosity=1 + cint(verbose), failfast=failfast)
@ -300,7 +306,7 @@ def _run_unittest(
frappe.flags.tests_verbose = verbose
out = runner.run(test_suite)
out = runner.run(final_test_suite)
if profile:
pr.disable()