diff options
| author | David Wobrock <david.wobrock@gmail.com> | 2023-12-27 17:02:27 +0100 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2024-02-21 12:04:03 +0100 |
| commit | c09e8f5fd8f977bf16e9ec5d11b370151fc81ea8 (patch) | |
| tree | 8f001d9a2a2beb792cbfb3a25dbebf99a43c8165 /tests/test_runner/test_parallel.py | |
| parent | a269d8d1d8cec2f9ae7ecc0c97a41fcf9efee580 (diff) | |
Fixed #32114 -- Fixed parallel test crash on non-picklable objects in subtests.
Diffstat (limited to 'tests/test_runner/test_parallel.py')
| -rw-r--r-- | tests/test_runner/test_parallel.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/test_runner/test_parallel.py b/tests/test_runner/test_parallel.py index e83f53bf4e..8f7bfd5cf8 100644 --- a/tests/test_runner/test_parallel.py +++ b/tests/test_runner/test_parallel.py @@ -51,6 +51,13 @@ class SampleFailingSubtest(SimpleTestCase): with self.subTest(index=i): self.assertEqual(i, 1) + # This method name doesn't begin with "test" to prevent test discovery + # from seeing it. + def pickle_error_test(self): + with self.subTest("TypeError: cannot pickle memoryview object"): + self.x = memoryview(b"") + self.fail("expected failure") + class RemoteTestResultTest(SimpleTestCase): def _test_error_exc_info(self): @@ -106,6 +113,16 @@ class RemoteTestResultTest(SimpleTestCase): with self.assertRaisesMessage(TypeError, msg): result._confirm_picklable(not_unpicklable_error) + def test_unpicklable_subtest(self): + result = RemoteTestResult() + subtest_test = SampleFailingSubtest(methodName="pickle_error_test") + subtest_test.run(result=result) + + events = result.events + subtest_event = events[1] + assertion_error = subtest_event[3] + self.assertEqual(str(assertion_error[1]), "expected failure") + @unittest.skipUnless(tblib is not None, "requires tblib to be installed") def test_add_failing_subtests(self): """ |
