summaryrefslogtreecommitdiff
path: root/tests/test_utils/test_deprecated_features.py
diff options
context:
space:
mode:
authorSimon Charette <charette.s@gmail.com>2018-07-12 00:12:20 -0400
committerTim Graham <timograham@gmail.com>2019-01-10 19:11:21 -0500
commit8c775391b78b2a4a2b57c5e89ed4888f36aada4b (patch)
tree3daeb3ef031be73079bd56e7c83f0f8f974d8f60 /tests/test_utils/test_deprecated_features.py
parent647be06538474078ac79c1338f02f5d9bc56a79b (diff)
Refs #28478 -- Deprecated TestCase's allow_database_queries and multi_db in favor of databases.
Diffstat (limited to 'tests/test_utils/test_deprecated_features.py')
-rw-r--r--tests/test_utils/test_deprecated_features.py64
1 files changed, 64 insertions, 0 deletions
diff --git a/tests/test_utils/test_deprecated_features.py b/tests/test_utils/test_deprecated_features.py
new file mode 100644
index 0000000000..fbed5e14c5
--- /dev/null
+++ b/tests/test_utils/test_deprecated_features.py
@@ -0,0 +1,64 @@
+from django.db import connections
+from django.db.utils import DEFAULT_DB_ALIAS
+from django.test import SimpleTestCase, TestCase, TransactionTestCase
+from django.utils.deprecation import RemovedInDjango31Warning
+
+
+class AllowDatabaseQueriesDeprecationTests(SimpleTestCase):
+ def test_enabled(self):
+ class AllowedDatabaseQueries(SimpleTestCase):
+ allow_database_queries = True
+ message = (
+ '`SimpleTestCase.allow_database_queries` is deprecated. Restrict '
+ 'the databases available during the execution of '
+ 'test_utils.test_deprecated_features.AllowDatabaseQueriesDeprecationTests.'
+ 'test_enabled.<locals>.AllowedDatabaseQueries with the '
+ '`databases` attribute instead.'
+ )
+ with self.assertWarnsMessage(RemovedInDjango31Warning, message):
+ self.assertEqual(AllowedDatabaseQueries.databases, {'default'})
+
+ def test_explicitly_disabled(self):
+ class AllowedDatabaseQueries(SimpleTestCase):
+ allow_database_queries = False
+ message = (
+ '`SimpleTestCase.allow_database_queries` is deprecated. Restrict '
+ 'the databases available during the execution of '
+ 'test_utils.test_deprecated_features.AllowDatabaseQueriesDeprecationTests.'
+ 'test_explicitly_disabled.<locals>.AllowedDatabaseQueries with '
+ 'the `databases` attribute instead.'
+ )
+ with self.assertWarnsMessage(RemovedInDjango31Warning, message):
+ self.assertEqual(AllowedDatabaseQueries.databases, set())
+
+
+class MultiDbDeprecationTests(SimpleTestCase):
+ def test_transaction_test_case(self):
+ class MultiDbTestCase(TransactionTestCase):
+ multi_db = True
+ message = (
+ '`TransactionTestCase.multi_db` is deprecated. Databases '
+ 'available during this test can be defined using '
+ 'test_utils.test_deprecated_features.MultiDbDeprecationTests.'
+ 'test_transaction_test_case.<locals>.MultiDbTestCase.databases.'
+ )
+ with self.assertWarnsMessage(RemovedInDjango31Warning, message):
+ self.assertEqual(MultiDbTestCase.databases, set(connections))
+ MultiDbTestCase.multi_db = False
+ with self.assertWarnsMessage(RemovedInDjango31Warning, message):
+ self.assertEqual(MultiDbTestCase.databases, {DEFAULT_DB_ALIAS})
+
+ def test_test_case(self):
+ class MultiDbTestCase(TestCase):
+ multi_db = True
+ message = (
+ '`TestCase.multi_db` is deprecated. Databases available during '
+ 'this test can be defined using '
+ 'test_utils.test_deprecated_features.MultiDbDeprecationTests.'
+ 'test_test_case.<locals>.MultiDbTestCase.databases.'
+ )
+ with self.assertWarnsMessage(RemovedInDjango31Warning, message):
+ self.assertEqual(MultiDbTestCase.databases, set(connections))
+ MultiDbTestCase.multi_db = False
+ with self.assertWarnsMessage(RemovedInDjango31Warning, message):
+ self.assertEqual(MultiDbTestCase.databases, {DEFAULT_DB_ALIAS})