#6031 closed (fixed)
tests: Don't fail silently if TestCase._pre_setup() raises an exception
| Reported by: | Owned by: | nobody | |
|---|---|---|---|
| Component: | Testing framework | Version: | dev |
| Severity: | Keywords: | ||
| Cc: | Triage Stage: | Unreviewed | |
| Has patch: | yes | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
Hi,
up to now the test runner ends without displaying the results,
if there is an exception in TestCase._pre_setup():
Creating test database...
[cut]
No fixtures found.
temp /tmp/tmpacM5va
EError: Database test_foo couldn't be flushed. Possible reasons:
* The database isn't running or isn't configured correctly.
* At least one of the expected database tables doesn't exist.
* The SQL was invalid.
Hint: Look at the output of 'django-admin.py sqlflush'. That's the SQL this command wasn't able to run.
The full error: current transaction is aborted, commands ignored until end of transaction block
This small patch passes the exception of _pre_setup() to the results of the testcase.
Otherwise it is hard to get the real error. The database error in _pre_setup()
is caused by the first test case. The output, or runnging the output of
'django-admin.py sqlflush' does not help, since the error can be specific to the
testdatabase.
Please apply this small patch. All unittests pass after applying it.
Attachments (1)
Change History (3)
by , 18 years ago
| Attachment: | testcases_exc_in_pre_setup.diff added |
|---|
comment:1 by , 18 years ago
| Resolution: | → fixed |
|---|---|
| Status: | new → closed |
comment:2 by , 17 years ago
| Cc: | removed |
|---|
Note:
See TracTickets
for help on using tickets.
(In [7023]) Fixed #6031 -- Added error handling for _pre_test in django.test.TestCase; exceptions during pre-test setup are now reported as test failures, rather than crashing the entire test framework. Thanks, Thomas Guttler <hv@…>.