diff options
| author | Adam Johnson <me@adamj.eu> | 2020-11-26 10:07:18 +0000 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2020-11-28 12:22:59 +0100 |
| commit | b9fd09d21b722c3745501151f9cbd5b95ccc3177 (patch) | |
| tree | c2d83f110fba90d2ce729668e0998657fe45f7ad /tests/test_runner/test_debug_sql.py | |
| parent | 7603036bd0629d5f9e58f8da2418170070357f62 (diff) | |
Fixed #32227 -- Prevented crash when setUpTestData() errors with --debug-sql.
Thanks Mariusz Felisiak for the report.
Diffstat (limited to 'tests/test_runner/test_debug_sql.py')
| -rw-r--r-- | tests/test_runner/test_debug_sql.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/test_runner/test_debug_sql.py b/tests/test_runner/test_debug_sql.py index 8c4cb6fef6..0e8e4207d6 100644 --- a/tests/test_runner/test_debug_sql.py +++ b/tests/test_runner/test_debug_sql.py @@ -25,6 +25,14 @@ class TestDebugSQL(unittest.TestCase): Person.objects.filter(first_name='error').count() raise Exception + class ErrorSetUpTestDataTest(TestCase): + @classmethod + def setUpTestData(cls): + raise Exception + + def runTest(self): + pass + class PassingSubTest(TestCase): def runTest(self): with self.subTest(): @@ -107,3 +115,22 @@ class TestDebugSQL(unittest.TestCase): '''FROM "test_runner_person" WHERE ''' '''"test_runner_person"."first_name" = 'subtest-pass';'''), ] + + def test_setupclass_exception(self): + runner = DiscoverRunner(debug_sql=True, verbosity=0) + suite = runner.test_suite() + suite.addTest(self.ErrorSetUpTestDataTest()) + old_config = runner.setup_databases() + stream = StringIO() + runner.test_runner( + verbosity=0, + stream=stream, + resultclass=runner.get_resultclass(), + ).run(suite) + runner.teardown_databases(old_config) + output = stream.getvalue() + self.assertIn( + 'ERROR: setUpClass ' + '(test_runner.test_debug_sql.TestDebugSQL.ErrorSetUpTestDataTest)', + output, + ) |
