Browse Source

Override setting for tests.

Rafał Pitoń 11 years ago
parent
commit
412cd6a7c5
1 changed files with 11 additions and 0 deletions
  1. 11 0
      misago/conf/dbsettings.py

+ 11 - 0
misago/conf/dbsettings.py

@@ -7,6 +7,7 @@ CACHE_KEY = 'misago_db_settings'
 class DBSettings(object):
     def __init__(self):
         self._settings = self._read_cache()
+        self._overrides = {}
 
     def _read_cache(self):
         from misago.core.cache import cache
@@ -55,6 +56,16 @@ class DBSettings(object):
         except KeyError:
             raise AttributeError("Setting %s is undefined" % attr)
 
+    def override_setting(self, setting, new_value):
+        if not setting in self._overrides:
+            self._overrides[setting] = self._settings[setting]['value']
+        self._settings[setting]['value'] = new_value
+        return new_value
+
+    def reset_settings(self):
+        for setting, original_value in self._overrides.items():
+            self._settings[setting]['value'] = original_value
+
 
 class _DBSettingsGateway(object):
     def get_db_settings(self):