summaryrefslogtreecommitdiff
path: root/tests/test_utils/test_deprecated_features.py
blob: fbed5e14c5b19af5da65fda7f106d31f3c28b68e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
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})