Fixed #20142 -- Added error handling for fixture setup
TestCase._fixture_setup disables transactions so, in case of an error, cleanup is needed to re-enable transactions, otherwise following TransactionTestCase would fail.
This commit is contained in:
parent
d5ce2ff5e4
commit
5883ae56b3
|
@ -843,13 +843,17 @@ class TestCase(TransactionTestCase):
|
|||
|
||||
for db in self._databases_names(include_mirrors=False):
|
||||
if hasattr(self, 'fixtures'):
|
||||
call_command('loaddata', *self.fixtures,
|
||||
**{
|
||||
'verbosity': 0,
|
||||
'commit': False,
|
||||
'database': db,
|
||||
'skip_validation': True,
|
||||
})
|
||||
try:
|
||||
call_command('loaddata', *self.fixtures,
|
||||
**{
|
||||
'verbosity': 0,
|
||||
'commit': False,
|
||||
'database': db,
|
||||
'skip_validation': True,
|
||||
})
|
||||
except Exception:
|
||||
self._fixture_teardown()
|
||||
raise
|
||||
|
||||
def _fixture_teardown(self):
|
||||
if not connections_support_transactions():
|
||||
|
|
Loading…
Reference in New Issue