diff options
| author | Simon Charette <charette.s@gmail.com> | 2019-01-12 14:33:50 -0500 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2019-01-14 16:05:00 -0500 |
| commit | f5b635086a07c9df5897e69685ebdc3a04049ec6 (patch) | |
| tree | b66cb8c72c18306140e2000ed29381dcb1d81746 /tests/test_utils/test_testcase.py | |
| parent | a96b9019320ed8236659ee520a7a017c1bafbc6f (diff) | |
Refs #28478 -- Prevented connection attempts against disallowed databases in tests.
Mocking connect as well as cursor methods makes sure an appropriate error
message is surfaced when running a subset of test attempting to access a
a disallowed database.
Diffstat (limited to 'tests/test_utils/test_testcase.py')
| -rw-r--r-- | tests/test_utils/test_testcase.py | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/tests/test_utils/test_testcase.py b/tests/test_utils/test_testcase.py index f374549400..853aba7c22 100644 --- a/tests/test_utils/test_testcase.py +++ b/tests/test_utils/test_testcase.py @@ -1,4 +1,4 @@ -from django.db import IntegrityError, transaction +from django.db import IntegrityError, connections, transaction from django.test import TestCase, skipUnlessDBFeature from .models import Car, PossessedCar @@ -19,6 +19,17 @@ class TestTestCase(TestCase): finally: self._rollback_atomics = rollback_atomics + def test_disallowed_database_connection(self): + message = ( + "Database connections to 'other' are not allowed in this test. " + "Add 'other' to test_utils.test_testcase.TestTestCase.databases to " + "ensure proper test isolation and silence this failure." + ) + with self.assertRaisesMessage(AssertionError, message): + connections['other'].connect() + with self.assertRaisesMessage(AssertionError, message): + connections['other'].temporary_connection() + def test_disallowed_database_queries(self): message = ( "Database queries to 'other' are not allowed in this test. " |
