From 8e0b8231d37300bd6a4150710c6ec45a7c41de9d Mon Sep 17 00:00:00 2001 From: Andrew Kuchling Date: Fri, 11 Nov 2016 14:42:45 -0500 Subject: [PATCH] Modernize Django transaction management for issue #226 --- django_nose/testcases.py | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/django_nose/testcases.py b/django_nose/testcases.py index 836a7d6..e55067e 100644 --- a/django_nose/testcases.py +++ b/django_nose/testcases.py @@ -45,10 +45,8 @@ def setUpClass(cls): raise NotImplementedError('%s supports only DBs with transaction ' 'capabilities.' % cls.__name__) for db in cls._databases(): - # These MUST be balanced with one leave_* each: - transaction.enter_transaction_management(using=db) # Don't commit unless we say so: - transaction.managed(True, using=db) + transaction.set_autocommit(False, using=db) cls._fixture_setup() @@ -59,15 +57,14 @@ def tearDownClass(cls): for db in cls._databases(): # Finish off any transactions that may have happened in # tearDownClass in a child method. - if transaction.is_dirty(using=db): - transaction.commit(using=db) - transaction.leave_transaction_management(using=db) + transaction.commit(using=db) @classmethod def _fixture_setup(cls): """Load fixture data, and commit.""" for db in cls._databases(): if (hasattr(cls, 'fixtures') and + cls.fixtures is not None and getattr(cls, '_fb_should_setup_fixtures', True)): # Iff the fixture-bundling test runner tells us we're the first # suite having these fixtures, set them up: @@ -122,8 +119,6 @@ def _pre_setup(self): cache.cache.clear() settings.TEMPLATE_DEBUG = settings.DEBUG = False - test.testcases.disable_transaction_methods() - self.client = self.client_class() # self._fixture_setup() self._urlconf_setup() @@ -142,7 +137,6 @@ def _post_teardown(self): """ # Rollback any mutations made by tests: - test.testcases.restore_transaction_methods() for db in self._databases(): transaction.rollback(using=db)