diff --git a/django/contrib/humanize/tests.py b/django/contrib/humanize/tests.py index 7997986370..556c2ca2d0 100644 --- a/django/contrib/humanize/tests.py +++ b/django/contrib/humanize/tests.py @@ -90,9 +90,9 @@ class HumanizeTests(TransRealMixin, TestCase): '100', '1,000', '10,123', '10,311', '1,000,000', '1,234,567.1234567', '1,234,567.1234567', None) - with self.settings(USE_L10N=True, USE_THOUSAND_SEPARATOR=False), \ - translation.override('en'): - self.humanize_tester(test_list, result_list, 'intcomma') + with self.settings(USE_L10N=True, USE_THOUSAND_SEPARATOR=False): + with translation.override('en'): + self.humanize_tester(test_list, result_list, 'intcomma') def test_intcomma_without_number_grouping(self): # Regression for #17414 @@ -116,18 +116,18 @@ class HumanizeTests(TransRealMixin, TestCase): '100', '1000', '10123', '10311', '1000000', None) result_list = ('100', '1.000', '10.123', '10.311', '1.000.000', '1.234.567,25', '100', '1.000', '10.123', '10.311', '1.000.000', None) - with self.settings(USE_L10N=True, USE_THOUSAND_SEPARATOR=True), \ - translation.override('de'): - self.humanize_tester(test_list, result_list, 'intcomma') + with self.settings(USE_L10N=True, USE_THOUSAND_SEPARATOR=True): + with translation.override('de'): + self.humanize_tester(test_list, result_list, 'intcomma') def test_i18n_intword(self): test_list = ('100', '1000000', '1200000', '1290000', '1000000000', '2000000000', '6000000000000') result_list = ('100', '1,0 Million', '1,2 Millionen', '1,3 Millionen', '1,0 Milliarde', '2,0 Milliarden', '6,0 Billionen') - with self.settings(USE_L10N=True, USE_THOUSAND_SEPARATOR=True), \ - translation.override('de'): - self.humanize_tester(test_list, result_list, 'intword') + with self.settings(USE_L10N=True, USE_THOUSAND_SEPARATOR=True): + with translation.override('de'): + self.humanize_tester(test_list, result_list, 'intword') def test_apnumber(self): test_list = [str(x) for x in range(1, 11)] @@ -174,9 +174,9 @@ class HumanizeTests(TransRealMixin, TestCase): orig_humanize_datetime, humanize.datetime = humanize.datetime, MockDateTime try: - with override_settings(TIME_ZONE="America/Chicago", USE_TZ=True), \ - translation.override('en'): - self.humanize_tester([dt], ['yesterday'], 'naturalday') + with override_settings(TIME_ZONE="America/Chicago", USE_TZ=True): + with translation.override('en'): + self.humanize_tester([dt], ['yesterday'], 'naturalday') finally: humanize.datetime = orig_humanize_datetime diff --git a/tests/i18n/tests.py b/tests/i18n/tests.py index f482dba3bb..d085e96cc9 100644 --- a/tests/i18n/tests.py +++ b/tests/i18n/tests.py @@ -745,11 +745,11 @@ class FormattingTests(TransRealMixin, TestCase): self.assertEqual('.', get_format('DECIMAL_SEPARATOR', lang='en')) def test_get_format_modules_stability(self): - with self.settings(FORMAT_MODULE_PATH='i18n.other.locale'), \ - translation.override('de', deactivate=True): - old = str("%r") % get_format_modules(reverse=True) - new = str("%r") % get_format_modules(reverse=True) # second try - self.assertEqual(new, old, 'Value returned by get_formats_modules() must be preserved between calls.') + with self.settings(FORMAT_MODULE_PATH='i18n.other.locale'): + with translation.override('de', deactivate=True): + old = str("%r") % get_format_modules(reverse=True) + new = str("%r") % get_format_modules(reverse=True) # second try + self.assertEqual(new, old, 'Value returned by get_formats_modules() must be preserved between calls.') def test_localize_templatetag_and_filter(self): """ diff --git a/tests/one_to_one_regress/tests.py b/tests/one_to_one_regress/tests.py index 55836d47e2..3dfe3e466e 100644 --- a/tests/one_to_one_regress/tests.py +++ b/tests/one_to_one_regress/tests.py @@ -141,10 +141,12 @@ class OneToOneRegressionTests(TestCase): """ p = Place(name='Zombie Cats', address='Not sure') p.save() - with self.assertNumQueries(1), self.assertRaises(Restaurant.DoesNotExist): - p.restaurant - with self.assertNumQueries(0), self.assertRaises(Restaurant.DoesNotExist): - p.restaurant + with self.assertNumQueries(1): + with self.assertRaises(Restaurant.DoesNotExist): + p.restaurant + with self.assertNumQueries(0): + with self.assertRaises(Restaurant.DoesNotExist): + p.restaurant def test_reverse_object_cached_when_related_is_accessed(self): """ @@ -197,8 +199,9 @@ class OneToOneRegressionTests(TestCase): self.assertEqual(self.p1.undergroundbar, b) b.place = None b.save() - with self.assertNumQueries(0), self.assertRaises(UndergroundBar.DoesNotExist): - self.p1.undergroundbar + with self.assertNumQueries(0): + with self.assertRaises(UndergroundBar.DoesNotExist): + self.p1.undergroundbar def test_get_reverse_on_unsaved_object(self): """ @@ -210,21 +213,24 @@ class OneToOneRegressionTests(TestCase): p = Place() # When there's no instance of the origin of the one-to-one - with self.assertNumQueries(0), self.assertRaises(UndergroundBar.DoesNotExist): - p.undergroundbar + with self.assertNumQueries(0): + with self.assertRaises(UndergroundBar.DoesNotExist): + p.undergroundbar UndergroundBar.objects.create() # When there's one instance of the origin # (p.undergroundbar used to return that instance) - with self.assertNumQueries(0), self.assertRaises(UndergroundBar.DoesNotExist): - p.undergroundbar + with self.assertNumQueries(0): + with self.assertRaises(UndergroundBar.DoesNotExist): + p.undergroundbar UndergroundBar.objects.create() # When there are several instances of the origin - with self.assertNumQueries(0), self.assertRaises(UndergroundBar.DoesNotExist): - p.undergroundbar + with self.assertNumQueries(0): + with self.assertRaises(UndergroundBar.DoesNotExist): + p.undergroundbar def test_set_reverse_on_unsaved_object(self): """ @@ -233,8 +239,9 @@ class OneToOneRegressionTests(TestCase): """ p = Place() b = UndergroundBar.objects.create() - with self.assertNumQueries(0), self.assertRaises(ValueError): - p.undergroundbar = b + with self.assertNumQueries(0): + with self.assertRaises(ValueError): + p.undergroundbar = b def test_nullable_o2o_delete(self): u = UndergroundBar.objects.create(place=self.p1) diff --git a/tests/test_utils/tests.py b/tests/test_utils/tests.py index 1b3c78b2e2..eb850cc3be 100644 --- a/tests/test_utils/tests.py +++ b/tests/test_utils/tests.py @@ -152,8 +152,9 @@ class CaptureQueriesContextManagerTests(TestCase): self.assertEqual(2, len(captured_queries)) def test_failure(self): - with self.assertRaises(TypeError), CaptureQueriesContext(connection): - raise TypeError + with self.assertRaises(TypeError): + with CaptureQueriesContext(connection): + raise TypeError def test_with_client(self): with CaptureQueriesContext(connection) as captured_queries: @@ -189,12 +190,14 @@ class AssertNumQueriesContextManagerTests(TestCase): Person.objects.count() def test_failure(self): - with self.assertRaises(AssertionError) as exc_info, self.assertNumQueries(2): - Person.objects.count() + with self.assertRaises(AssertionError) as exc_info: + with self.assertNumQueries(2): + Person.objects.count() self.assertIn("1 queries executed, 2 expected", str(exc_info.exception)) - with self.assertRaises(TypeError), self.assertNumQueries(4000): - raise TypeError + with self.assertRaises(TypeError): + with self.assertNumQueries(4000): + raise TypeError def test_with_client(self): person = Person.objects.create(name="test") @@ -229,13 +232,13 @@ class AssertTemplateUsedContextManagerTests(TestCase): render_to_string('template_used/base.html') def test_nested_usage(self): - with self.assertTemplateUsed('template_used/base.html'), \ - self.assertTemplateUsed('template_used/include.html'): - render_to_string('template_used/include.html') + with self.assertTemplateUsed('template_used/base.html'): + with self.assertTemplateUsed('template_used/include.html'): + render_to_string('template_used/include.html') - with self.assertTemplateUsed('template_used/extends.html'), \ - self.assertTemplateUsed('template_used/base.html'): - render_to_string('template_used/extends.html') + with self.assertTemplateUsed('template_used/extends.html'): + with self.assertTemplateUsed('template_used/base.html'): + render_to_string('template_used/extends.html') with self.assertTemplateUsed('template_used/base.html'): with self.assertTemplateUsed('template_used/alternative.html'): @@ -255,34 +258,38 @@ class AssertTemplateUsedContextManagerTests(TestCase): pass def test_error_message(self): - with six.assertRaisesRegex(self, AssertionError, r'^template_used/base\.html'), \ - self.assertTemplateUsed('template_used/base.html'): - pass + with six.assertRaisesRegex(self, AssertionError, r'^template_used/base\.html'): + with self.assertTemplateUsed('template_used/base.html'): + pass - with six.assertRaisesRegex(self, AssertionError, r'^template_used/base\.html'), \ - self.assertTemplateUsed(template_name='template_used/base.html'): - pass + with six.assertRaisesRegex(self, AssertionError, r'^template_used/base\.html'): + with self.assertTemplateUsed(template_name='template_used/base.html'): + pass - with six.assertRaisesRegex(self, AssertionError, r'^template_used/base\.html.*template_used/alternative\.html$'), \ - self.assertTemplateUsed('template_used/base.html'): - render_to_string('template_used/alternative.html') + with six.assertRaisesRegex(self, AssertionError, r'^template_used/base\.html.*template_used/alternative\.html$'): + with self.assertTemplateUsed('template_used/base.html'): + render_to_string('template_used/alternative.html') def test_failure(self): - with self.assertRaises(TypeError), self.assertTemplateUsed(): - pass + with self.assertRaises(TypeError): + with self.assertTemplateUsed(): + pass - with self.assertRaises(AssertionError), self.assertTemplateUsed(''): - pass + with self.assertRaises(AssertionError): + with self.assertTemplateUsed(''): + pass - with self.assertRaises(AssertionError), self.assertTemplateUsed(''): - render_to_string('template_used/base.html') + with self.assertRaises(AssertionError): + with self.assertTemplateUsed(''): + render_to_string('template_used/base.html') - with self.assertRaises(AssertionError), self.assertTemplateUsed(template_name=''): - pass + with self.assertRaises(AssertionError): + with self.assertTemplateUsed(template_name=''): + pass - with self.assertRaises(AssertionError), \ - self.assertTemplateUsed('template_used/base.html'): - render_to_string('template_used/alternative.html') + with self.assertRaises(AssertionError): + with self.assertTemplateUsed('template_used/base.html'): + render_to_string('template_used/alternative.html') class HTMLEqualTests(TestCase): diff --git a/tests/transactions/tests.py b/tests/transactions/tests.py index d7cbbd0f3c..9cf8b4d742 100644 --- a/tests/transactions/tests.py +++ b/tests/transactions/tests.py @@ -65,9 +65,10 @@ class AtomicTests(TransactionTestCase): self.assertQuerysetEqual(Reporter.objects.all(), ['']) def test_rollback(self): - with six.assertRaisesRegex(self, Exception, "Oops"), transaction.atomic(): - Reporter.objects.create(first_name="Haddock") - raise Exception("Oops, that's his last name") + with six.assertRaisesRegex(self, Exception, "Oops"): + with transaction.atomic(): + Reporter.objects.create(first_name="Haddock") + raise Exception("Oops, that's his last name") self.assertQuerysetEqual(Reporter.objects.all(), []) def test_nested_commit_commit(self): @@ -81,27 +82,30 @@ class AtomicTests(TransactionTestCase): def test_nested_commit_rollback(self): with transaction.atomic(): Reporter.objects.create(first_name="Tintin") - with six.assertRaisesRegex(self, Exception, "Oops"), transaction.atomic(): - Reporter.objects.create(first_name="Haddock") - raise Exception("Oops, that's his last name") - self.assertQuerysetEqual(Reporter.objects.all(), ['']) - - def test_nested_rollback_commit(self): - with six.assertRaisesRegex(self, Exception, "Oops"), transaction.atomic(): - Reporter.objects.create(last_name="Tintin") - with transaction.atomic(): - Reporter.objects.create(last_name="Haddock") - raise Exception("Oops, that's his first name") - self.assertQuerysetEqual(Reporter.objects.all(), []) - - def test_nested_rollback_rollback(self): - with six.assertRaisesRegex(self, Exception, "Oops"), transaction.atomic(): - Reporter.objects.create(last_name="Tintin") with six.assertRaisesRegex(self, Exception, "Oops"): with transaction.atomic(): Reporter.objects.create(first_name="Haddock") - raise Exception("Oops, that's his last name") - raise Exception("Oops, that's his first name") + raise Exception("Oops, that's his last name") + self.assertQuerysetEqual(Reporter.objects.all(), ['']) + + def test_nested_rollback_commit(self): + with six.assertRaisesRegex(self, Exception, "Oops"): + with transaction.atomic(): + Reporter.objects.create(last_name="Tintin") + with transaction.atomic(): + Reporter.objects.create(last_name="Haddock") + raise Exception("Oops, that's his first name") + self.assertQuerysetEqual(Reporter.objects.all(), []) + + def test_nested_rollback_rollback(self): + with six.assertRaisesRegex(self, Exception, "Oops"): + with transaction.atomic(): + Reporter.objects.create(last_name="Tintin") + with six.assertRaisesRegex(self, Exception, "Oops"): + with transaction.atomic(): + Reporter.objects.create(first_name="Haddock") + raise Exception("Oops, that's his last name") + raise Exception("Oops, that's his first name") self.assertQuerysetEqual(Reporter.objects.all(), []) def test_merged_commit_commit(self): @@ -115,29 +119,31 @@ class AtomicTests(TransactionTestCase): def test_merged_commit_rollback(self): with transaction.atomic(): Reporter.objects.create(first_name="Tintin") - with six.assertRaisesRegex(self, Exception, "Oops"), \ - transaction.atomic(savepoint=False): - Reporter.objects.create(first_name="Haddock") - raise Exception("Oops, that's his last name") + with six.assertRaisesRegex(self, Exception, "Oops"): + with transaction.atomic(savepoint=False): + Reporter.objects.create(first_name="Haddock") + raise Exception("Oops, that's his last name") # Writes in the outer block are rolled back too. self.assertQuerysetEqual(Reporter.objects.all(), []) def test_merged_rollback_commit(self): - with six.assertRaisesRegex(self, Exception, "Oops"), transaction.atomic(): - Reporter.objects.create(last_name="Tintin") - with transaction.atomic(savepoint=False): - Reporter.objects.create(last_name="Haddock") - raise Exception("Oops, that's his first name") + with six.assertRaisesRegex(self, Exception, "Oops"): + with transaction.atomic(): + Reporter.objects.create(last_name="Tintin") + with transaction.atomic(savepoint=False): + Reporter.objects.create(last_name="Haddock") + raise Exception("Oops, that's his first name") self.assertQuerysetEqual(Reporter.objects.all(), []) def test_merged_rollback_rollback(self): - with six.assertRaisesRegex(self, Exception, "Oops"), transaction.atomic(): - Reporter.objects.create(last_name="Tintin") - with six.assertRaisesRegex(self, Exception, "Oops"): - with transaction.atomic(savepoint=False): - Reporter.objects.create(first_name="Haddock") - raise Exception("Oops, that's his last name") - raise Exception("Oops, that's his first name") + with six.assertRaisesRegex(self, Exception, "Oops"): + with transaction.atomic(): + Reporter.objects.create(last_name="Tintin") + with six.assertRaisesRegex(self, Exception, "Oops"): + with transaction.atomic(savepoint=False): + Reporter.objects.create(first_name="Haddock") + raise Exception("Oops, that's his last name") + raise Exception("Oops, that's his first name") self.assertQuerysetEqual(Reporter.objects.all(), []) def test_reuse_commit_commit(self): @@ -153,29 +159,32 @@ class AtomicTests(TransactionTestCase): atomic = transaction.atomic() with atomic: Reporter.objects.create(first_name="Tintin") - with six.assertRaisesRegex(self, Exception, "Oops"), atomic: - Reporter.objects.create(first_name="Haddock") - raise Exception("Oops, that's his last name") + with six.assertRaisesRegex(self, Exception, "Oops"): + with atomic: + Reporter.objects.create(first_name="Haddock") + raise Exception("Oops, that's his last name") self.assertQuerysetEqual(Reporter.objects.all(), ['']) def test_reuse_rollback_commit(self): atomic = transaction.atomic() - with six.assertRaisesRegex(self, Exception, "Oops"), atomic: - Reporter.objects.create(last_name="Tintin") + with six.assertRaisesRegex(self, Exception, "Oops"): with atomic: - Reporter.objects.create(last_name="Haddock") - raise Exception("Oops, that's his first name") + Reporter.objects.create(last_name="Tintin") + with atomic: + Reporter.objects.create(last_name="Haddock") + raise Exception("Oops, that's his first name") self.assertQuerysetEqual(Reporter.objects.all(), []) def test_reuse_rollback_rollback(self): atomic = transaction.atomic() - with six.assertRaisesRegex(self, Exception, "Oops"), atomic: - Reporter.objects.create(last_name="Tintin") - with six.assertRaisesRegex(self, Exception, "Oops"): - with atomic: - Reporter.objects.create(first_name="Haddock") - raise Exception("Oops, that's his last name") - raise Exception("Oops, that's his first name") + with six.assertRaisesRegex(self, Exception, "Oops"): + with atomic: + Reporter.objects.create(last_name="Tintin") + with six.assertRaisesRegex(self, Exception, "Oops"): + with atomic: + Reporter.objects.create(first_name="Haddock") + raise Exception("Oops, that's his last name") + raise Exception("Oops, that's his first name") self.assertQuerysetEqual(Reporter.objects.all(), []) def test_force_rollback(self): @@ -191,9 +200,10 @@ class AtomicTests(TransactionTestCase): Reporter.objects.create(first_name="Tintin") sid = transaction.savepoint() # trigger a database error inside an inner atomic without savepoint - with self.assertRaises(DatabaseError), transaction.atomic(savepoint=False): - connection.cursor().execute( - "SELECT no_such_col FROM transactions_reporter") + with self.assertRaises(DatabaseError): + with transaction.atomic(savepoint=False): + connection.cursor().execute( + "SELECT no_such_col FROM transactions_reporter") transaction.savepoint_rollback(sid) # atomic block should rollback, but prevent it, as we just did it. self.assertTrue(transaction.get_rollback()) @@ -253,10 +263,10 @@ class AtomicMergeTests(TransactionTestCase): Reporter.objects.create(first_name="Tintin") with transaction.atomic(savepoint=False): Reporter.objects.create(first_name="Archibald", last_name="Haddock") - with six.assertRaisesRegex(self, Exception, "Oops"), \ - transaction.atomic(savepoint=False): - Reporter.objects.create(first_name="Tournesol") - raise Exception("Oops, that's his last name") + with six.assertRaisesRegex(self, Exception, "Oops"): + with transaction.atomic(savepoint=False): + Reporter.objects.create(first_name="Tournesol") + raise Exception("Oops, that's his last name") # It wasn't possible to roll back self.assertEqual(Reporter.objects.count(), 3) # It wasn't possible to roll back @@ -269,10 +279,10 @@ class AtomicMergeTests(TransactionTestCase): Reporter.objects.create(first_name="Tintin") with transaction.atomic(): Reporter.objects.create(first_name="Archibald", last_name="Haddock") - with six.assertRaisesRegex(self, Exception, "Oops"), \ - transaction.atomic(savepoint=False): - Reporter.objects.create(first_name="Tournesol") - raise Exception("Oops, that's his last name") + with six.assertRaisesRegex(self, Exception, "Oops"): + with transaction.atomic(savepoint=False): + Reporter.objects.create(first_name="Tournesol") + raise Exception("Oops, that's his last name") # It wasn't possible to roll back self.assertEqual(Reporter.objects.count(), 3) # The first block with a savepoint must roll back @@ -283,10 +293,10 @@ class AtomicMergeTests(TransactionTestCase): with transaction.atomic(): Reporter.objects.create(first_name="Tintin") # Inner block without a savepoint fails - with six.assertRaisesRegex(self, Exception, "Oops"), \ - transaction.atomic(savepoint=False): - Reporter.objects.create(first_name="Haddock") - raise Exception("Oops, that's his last name") + with six.assertRaisesRegex(self, Exception, "Oops"): + with transaction.atomic(savepoint=False): + Reporter.objects.create(first_name="Haddock") + raise Exception("Oops, that's his last name") # It wasn't possible to roll back self.assertEqual(Reporter.objects.count(), 2) # Inner block with a savepoint succeeds @@ -306,9 +316,9 @@ class AtomicErrorsTests(TransactionTestCase): def test_atomic_prevents_setting_autocommit(self): autocommit = transaction.get_autocommit() - with transaction.atomic(), \ - self.assertRaises(transaction.TransactionManagementError): - transaction.set_autocommit(not autocommit) + with transaction.atomic(): + with self.assertRaises(transaction.TransactionManagementError): + transaction.set_autocommit(not autocommit) # Make sure autocommit wasn't changed. self.assertEqual(connection.autocommit, autocommit) @@ -542,8 +552,9 @@ class TransactionContextManagerTests(IgnoreDeprecationWarningsMixin, Transaction The autocommit context manager works exactly the same as the default behavior. """ - with self.assertRaises(Exception), transaction.autocommit(): - self.create_reporter_and_fail() + with self.assertRaises(Exception): + with transaction.autocommit(): + self.create_reporter_and_fail() self.assertEqual(Reporter.objects.count(), 1) @@ -552,8 +563,9 @@ class TransactionContextManagerTests(IgnoreDeprecationWarningsMixin, Transaction """ The autocommit context manager also works with a using argument. """ - with self.assertRaises(Exception), transaction.autocommit(using="default"): - self.create_reporter_and_fail() + with self.assertRaises(Exception): + with transaction.autocommit(using="default"): + self.create_reporter_and_fail() self.assertEqual(Reporter.objects.count(), 1) @@ -563,8 +575,9 @@ class TransactionContextManagerTests(IgnoreDeprecationWarningsMixin, Transaction With the commit_on_success context manager, the transaction is only committed if the block doesn't throw an exception. """ - with self.assertRaises(Exception), transaction.commit_on_success(): - self.create_reporter_and_fail() + with self.assertRaises(Exception): + with transaction.commit_on_success(): + self.create_reporter_and_fail() self.assertEqual(Reporter.objects.count(), 0) @@ -573,8 +586,9 @@ class TransactionContextManagerTests(IgnoreDeprecationWarningsMixin, Transaction """ The commit_on_success context manager also works with a using argument. """ - with self.assertRaises(Exception), transaction.commit_on_success(using="default"): - self.create_reporter_and_fail() + with self.assertRaises(Exception): + with transaction.commit_on_success(using="default"): + self.create_reporter_and_fail() self.assertEqual(Reporter.objects.count(), 0) @@ -619,18 +633,18 @@ class TransactionContextManagerTests(IgnoreDeprecationWarningsMixin, Transaction """ If you forget, you'll get bad errors. """ - with self.assertRaises(transaction.TransactionManagementError), \ - transaction.commit_manually(): - Reporter.objects.create(first_name="Scott", last_name="Browning") + with self.assertRaises(transaction.TransactionManagementError): + with transaction.commit_manually(): + Reporter.objects.create(first_name="Scott", last_name="Browning") @skipUnlessDBFeature('supports_transactions') def test_manually_managed_with_using(self): """ The commit_manually function also works with a using argument. """ - with self.assertRaises(transaction.TransactionManagementError), \ - transaction.commit_manually(using="default"): - Reporter.objects.create(first_name="Walter", last_name="Cronkite") + with self.assertRaises(transaction.TransactionManagementError): + with transaction.commit_manually(using="default"): + Reporter.objects.create(first_name="Walter", last_name="Cronkite") @skipUnlessDBFeature('requires_rollback_on_dirty_transaction') def test_bad_sql(self): @@ -640,7 +654,8 @@ class TransactionContextManagerTests(IgnoreDeprecationWarningsMixin, Transaction be rolled back. The bug is only visible using the psycopg2 backend, though the fix is generally a good idea. """ - with self.assertRaises(IntegrityError), transaction.commit_on_success(): - cursor = connection.cursor() - cursor.execute("INSERT INTO transactions_reporter (first_name, last_name) VALUES ('Douglas', 'Adams');") + with self.assertRaises(IntegrityError): + with transaction.commit_on_success(): + cursor = connection.cursor() + cursor.execute("INSERT INTO transactions_reporter (first_name, last_name) VALUES ('Douglas', 'Adams');") transaction.rollback() diff --git a/tests/view_tests/tests/test_i18n.py b/tests/view_tests/tests/test_i18n.py index 50677947b6..680cd25d6a 100644 --- a/tests/view_tests/tests/test_i18n.py +++ b/tests/view_tests/tests/test_i18n.py @@ -116,10 +116,10 @@ class JsI18NTests(TestCase): with the proper English translations. See #13726 for more details. """ extended_apps = list(settings.INSTALLED_APPS) + ['view_tests.app0'] - with self.settings(LANGUAGE_CODE='fr', INSTALLED_APPS=extended_apps), \ - override('en-us'): - response = self.client.get('/views/jsi18n_english_translation/') - self.assertContains(response, javascript_quote('this app0 string is to be translated')) + with self.settings(LANGUAGE_CODE='fr', INSTALLED_APPS=extended_apps): + with override('en-us'): + response = self.client.get('/views/jsi18n_english_translation/') + self.assertContains(response, javascript_quote('this app0 string is to be translated')) def testI18NLanguageNonEnglishFallback(self): """ @@ -145,11 +145,10 @@ class JsI18NTestsMultiPackage(TestCase): #3594 and #13514 for more details. """ extended_apps = list(settings.INSTALLED_APPS) + ['view_tests.app1', 'view_tests.app2'] - with self.settings(LANGUAGE_CODE='en-us', INSTALLED_APPS=extended_apps), \ - override('fr'): - response = self.client.get('/views/jsi18n_multi_packages1/') - self.assertContains(response, - javascript_quote('il faut traduire cette chaîne de caractères de app1')) + with self.settings(LANGUAGE_CODE='en-us', INSTALLED_APPS=extended_apps): + with override('fr'): + response = self.client.get('/views/jsi18n_multi_packages1/') + self.assertContains(response, javascript_quote('il faut traduire cette chaîne de caractères de app1')) def testI18NDifferentNonEnLangs(self): """ @@ -157,21 +156,20 @@ class JsI18NTestsMultiPackage(TestCase): English. """ extended_apps = list(settings.INSTALLED_APPS) + ['view_tests.app3', 'view_tests.app4'] - with self.settings(LANGUAGE_CODE='fr', INSTALLED_APPS=extended_apps), \ - override('es-ar'): - response = self.client.get('/views/jsi18n_multi_packages2/') - self.assertContains(response, - javascript_quote('este texto de app3 debe ser traducido')) + with self.settings(LANGUAGE_CODE='fr', INSTALLED_APPS=extended_apps): + with override('es-ar'): + response = self.client.get('/views/jsi18n_multi_packages2/') + self.assertContains(response, javascript_quote('este texto de app3 debe ser traducido')) def testI18NWithLocalePaths(self): extended_locale_paths = settings.LOCALE_PATHS + ( path.join(path.dirname( path.dirname(path.abspath(upath(__file__)))), 'app3', 'locale'),) - with self.settings(LANGUAGE_CODE='es-ar', LOCALE_PATHS=extended_locale_paths), \ - override('es-ar'): - response = self.client.get('/views/jsi18n/') - self.assertContains(response, - javascript_quote('este texto de app3 debe ser traducido')) + with self.settings(LANGUAGE_CODE='es-ar', LOCALE_PATHS=extended_locale_paths): + with override('es-ar'): + response = self.client.get('/views/jsi18n/') + self.assertContains(response, + javascript_quote('este texto de app3 debe ser traducido')) skip_selenium = not os.environ.get('DJANGO_SELENIUM_TESTS', False)