summaryrefslogtreecommitdiff
path: root/tests/test_runner/test_parallel.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_runner/test_parallel.py')
-rw-r--r--tests/test_runner/test_parallel.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/test_runner/test_parallel.py b/tests/test_runner/test_parallel.py
index f344f1a2db..d4558018b0 100644
--- a/tests/test_runner/test_parallel.py
+++ b/tests/test_runner/test_parallel.py
@@ -282,3 +282,27 @@ class ParallelTestSuiteTest(SimpleTestCase):
self.assertEqual(len(result.errors), 0)
self.assertEqual(len(result.failures), 0)
+
+ def test_buffer_mode_reports_setupclass_failure(self):
+ test = SampleErrorTest("dummy_test")
+ remote_result = RemoteTestResult()
+ suite = TestSuite([test])
+ suite.run(remote_result)
+
+ pts = ParallelTestSuite([suite], processes=2, buffer=True)
+ pts.serialized_aliases = set()
+ test_result = TestResult()
+ test_result.buffer = True
+
+ with unittest.mock.patch("multiprocessing.Pool") as mock_pool:
+
+ def fake_next(*args, **kwargs):
+ test_result.shouldStop = True
+ return (0, remote_result.events)
+
+ mock_pool.return_value.imap_unordered.return_value = unittest.mock.Mock(
+ next=fake_next
+ )
+ pts.run(test_result)
+
+ self.assertIn("ValueError: woops", test_result.errors[0][1])