-
-
Notifications
You must be signed in to change notification settings - Fork 288
/
tests.py
120 lines (93 loc) · 4.26 KB
/
tests.py
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
from __future__ import annotations
from django.conf import settings
from django.test import TestCase
from django.test.utils import override_settings
# Create your tests here.
@override_settings(ISSUE=596)
class SettingsTest(TestCase):
def test_settings(self):
self.assertEqual(settings.ISSUE, 596)
self.assertEqual(settings.SERVER, "prodserver.com")
# self.assertEqual(
# settings.STATIC_URL, "/changed/in/settings.toml/by/dynaconf/"
# )
self.assertEqual(settings.USERNAME, "admin_user_from_env")
self.assertEqual(settings.PASSWORD, "My5up3r53c4et")
self.assertEqual(settings.get("PASSWORD"), "My5up3r53c4et")
self.assertEqual(settings.FOO, "It overrides every other env")
with settings.using_env("development"):
self.assertEqual(settings.SERVER, "devserver.com")
self.assertEqual(settings.PASSWORD, False)
self.assertEqual(settings.USERNAME, "admin_user_from_env")
self.assertEqual(settings.FOO, "It overrides every other env")
self.assertEqual(settings.SERVER, "prodserver.com")
self.assertEqual(settings.PASSWORD, "My5up3r53c4et")
self.assertEqual(settings.USERNAME, "admin_user_from_env")
self.assertEqual(settings.FOO, "It overrides every other env")
with settings.using_env("staging"):
self.assertEqual(settings.SERVER, "stagingserver.com")
self.assertEqual(settings.PASSWORD, False)
self.assertEqual(settings.USERNAME, "admin_user_from_env")
self.assertEqual(settings.FOO, "It overrides every other env")
self.assertEqual(settings.SERVER, "prodserver.com")
self.assertEqual(settings.PASSWORD, "My5up3r53c4et")
self.assertEqual(settings.USERNAME, "admin_user_from_env")
self.assertEqual(settings.FOO, "It overrides every other env")
with settings.using_env("customenv"):
self.assertEqual(settings.SERVER, "customserver.com")
self.assertEqual(settings.PASSWORD, False)
self.assertEqual(settings.USERNAME, "admin_user_from_env")
self.assertEqual(settings.FOO, "It overrides every other env")
self.assertEqual(settings.SERVER, "prodserver.com")
self.assertEqual(settings.PASSWORD, "My5up3r53c4et")
self.assertEqual(settings.USERNAME, "admin_user_from_env")
self.assertEqual(settings.FOO, "It overrides every other env")
def test_override_settings_context(self):
self.assertEqual(settings.ISSUE, 596)
with self.settings(DAY=19):
self.assertEqual(settings.DAY, 19)
def test_debug_value(self):
self.assertTrue(settings.ANOTHER_DEBUG)
# self.assertTrue(settings.DEBUG)
# Django by default overrides DEBUG to False during tests.
# Starting with Django 1.11 you can use
# --debug-mode to set the DEBUG setting to True prior to running tests.
assert settings.TEST_VALUE == "a"
@override_settings(TEST_VALUE="c")
class TestOverrideClassDecoratorAndManager(TestCase):
def test_settings(self):
self.assertEqual(settings.TEST_VALUE, "c")
def test_modified_settings(self):
with self.settings(TEST_VALUE="b"):
self.assertEqual(settings.TEST_VALUE, "b")
class TestNoOverride(TestCase):
def test_settings(self):
self.assertEqual(settings.TEST_VALUE, "a")
class TestModifySettingsContextManager(TestCase):
def test_settings(self):
self.assertEqual(settings.COLORS, ["black", "green"])
with self.modify_settings(
COLORS={
"append": ["blue"],
"prepend": ["red"],
"remove": ["black"],
}
):
self.assertEqual(settings.COLORS, ["red", "green", "blue"])
class TestHookExecutes(TestCase):
def test_hooks(self):
self.assertEqual(
settings.BANDS,
["Metallica", "Black Sabbath", "Iron Maiden", "Beatles"],
)
self.assertTrue(settings.HOOK_ON_DJANGO_APP)
class TestMerge(TestCase):
def test_merge(self):
self.assertEqual(
settings.LOGGING.loggers[""].handlers,
["console"],
)
self.assertEqual(
settings.LOGGING.loggers[""].level,
"DEBUG",
)