diff options
author | Victor Stinner <vstinner@redhat.com> | 2018-12-14 12:06:50 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-12-14 12:06:50 (GMT) |
commit | 3a8f4fef4a4dd0e4a800545468eef9542e126181 (patch) | |
tree | 381684b45c5485d95fd32dda185431ecc3aedc1c | |
parent | 7acd50ad8b2a4fe132f7b26980ed3cd209b7ea12 (diff) | |
download | cpython-3a8f4fef4a4dd0e4a800545468eef9542e126181.zip cpython-3a8f4fef4a4dd0e4a800545468eef9542e126181.tar.gz cpython-3a8f4fef4a4dd0e4a800545468eef9542e126181.tar.bz2 |
bpo-34279: regrtest consider that skipped tests are ran (GH-11132)
bpo-34279, bpo-35412: support.run_unittest() no longer raises
TestDidNotRun if a test result contains skipped tests. The
exception is now only raised if no test have been run and no test
have been skipped.
-rw-r--r-- | Lib/test/support/__init__.py | 2 | ||||
-rw-r--r-- | Lib/test/test_regrtest.py | 14 | ||||
-rw-r--r-- | Misc/NEWS.d/next/Tests/2018-12-12-18-20-18.bpo-34279.DhKcuP.rst | 3 |
3 files changed, 18 insertions, 1 deletions
diff --git a/Lib/test/support/__init__.py b/Lib/test/support/__init__.py index 05e8593..9b6c338 100644 --- a/Lib/test/support/__init__.py +++ b/Lib/test/support/__init__.py @@ -1937,7 +1937,7 @@ def _run_suite(suite): if junit_xml_list is not None: junit_xml_list.append(result.get_xml_element()) - if not result.testsRun: + if not result.testsRun and not result.skipped: raise TestDidNotRun if not result.wasSuccessful(): if len(result.errors) == 1 and not result.failures: diff --git a/Lib/test/test_regrtest.py b/Lib/test/test_regrtest.py index db9bd6d..a674583 100644 --- a/Lib/test/test_regrtest.py +++ b/Lib/test/test_regrtest.py @@ -1004,6 +1004,7 @@ class ArgsTestCase(BaseTestCase): output = self.run_tests("-w", testname, exitcode=2) self.check_executed_tests(output, [testname], failed=testname, rerun=testname) + def test_no_tests_ran(self): code = textwrap.dedent(""" import unittest @@ -1017,6 +1018,19 @@ class ArgsTestCase(BaseTestCase): output = self.run_tests(testname, "-m", "nosuchtest", exitcode=0) self.check_executed_tests(output, [testname], no_test_ran=testname) + def test_no_tests_ran_skip(self): + code = textwrap.dedent(""" + import unittest + + class Tests(unittest.TestCase): + def test_skipped(self): + self.skipTest("because") + """) + testname = self.create_test(code=code) + + output = self.run_tests(testname, exitcode=0) + self.check_executed_tests(output, [testname]) + def test_no_tests_ran_multiple_tests_nonexistent(self): code = textwrap.dedent(""" import unittest diff --git a/Misc/NEWS.d/next/Tests/2018-12-12-18-20-18.bpo-34279.DhKcuP.rst b/Misc/NEWS.d/next/Tests/2018-12-12-18-20-18.bpo-34279.DhKcuP.rst new file mode 100644 index 0000000..5a70cc5 --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2018-12-12-18-20-18.bpo-34279.DhKcuP.rst @@ -0,0 +1,3 @@ +:func:`test.support.run_unittest` no longer raise :exc:`TestDidNotRun` if +the test result contains skipped tests. The exception is now only raised if +no test have been run and no test have been skipped. |