Browse Source

Add override_dynamic_settings testing utility

rafalp 6 years ago
parent
commit
008a41ab84

+ 1 - 1
misago/conf/databasesettings.py → misago/conf/dynamicsettings.py

@@ -4,7 +4,7 @@ from . import CACHE_NAME
 from .models import Setting
 
 
-class DatabaseSettings:
+class DynamicSettings:
     _overrides = {}
 
     def __init__(self, cache_versions):

+ 4 - 4
misago/conf/tests/__init__.py

@@ -1,17 +1,17 @@
 from functools import wraps
 
-from misago.conf.databasesettings import DatabaseSettings
+from misago.conf.dynamicsettings import DynamicSettings
 
 
-class OverrideDatabaseSettings:
+class override_dynamic_settings:
     def __init__(self, **settings):
         self._overrides = settings
 
     def __enter__(self):
-        DatabaseSettings.override_settings(self._overrides)
+        DynamicSettings.override_settings(self._overrides)
 
     def __exit__(self, *_):
-        DatabaseSettings.remove_overrides()
+        DynamicSettings.remove_overrides()
 
     def __call__(self, f):
         @wraps(f)

+ 28 - 0
misago/conf/tests/test_overridding_dynamic_settings.py

@@ -0,0 +1,28 @@
+from django.test import TestCase
+
+from misago.conf import CACHE_NAME
+from misago.conf.tests import override_dynamic_settings
+from misago.conf.dynamicsettings import DynamicSettings
+
+cache_versions = {CACHE_NAME: "abcdefgh"}
+
+
+class OverrideDynamicSettingsTests(TestCase):
+    def test_setting_can_be_overridden_using_context_manager(self):
+        settings = DynamicSettings(cache_versions)
+        assert settings.forum_name == "Misago"
+
+        with override_dynamic_settings(forum_name="Overrided"):
+            assert settings.forum_name == "Overrided"
+
+        assert settings.forum_name == "Misago"
+
+    def test_setting_can_be_overridden_using_decorator(self):
+        @override_dynamic_settings(forum_name="Overrided")
+        def decorated_function(settings):
+            return settings.forum_name
+
+        settings = DynamicSettings(cache_versions)
+        assert settings.forum_name == "Misago"
+        assert decorated_function(settings) == "Overrided"
+        assert settings.forum_name == "Misago"

+ 0 - 16
misago/conf/tests/test_overriding_db_settings.py

@@ -1,16 +0,0 @@
-from django.test import TestCase
-
-from misago.conf import CACHE_NAME
-from misago.conf.tests import OverrideDatabaseSettings
-from misago.conf.databasesettings import DatabaseSettings
-
-
-class OverrideDatabaseSettingsTests(TestCase):
-    def test_as_context_manager(self):
-        settings = DatabaseSettings({CACHE_NAME: "abcdefgh"})
-        assert settings.forum_name == "Misago"
-
-        with OverrideDatabaseSettings(forum_name="Overrided"):
-            assert settings.forum_name == "Overrided"
-
-        assert settings.forum_name == "Misago"