Browse Source

Tests for lazy settings.

Rafał Pitoń 11 years ago
parent
commit
d233b94750

+ 1 - 1
misago/conf/dbsettings.py

@@ -41,7 +41,7 @@ class DBSettings(object):
             if self._settings[setting]['is_lazy']:
                 return Setting.objects.get(setting=setting).value
             else:
-                raise AttributeError("Setting %s is not lazy" % setting)
+                raise ValueError("Setting %s is not lazy" % setting)
         except (KeyError, Setting.DoesNotExist):
             raise AttributeError("Setting %s is undefined" % setting)
 

+ 4 - 0
misago/conf/tests/test_context_processors.py

@@ -1,4 +1,5 @@
 from django.test import TestCase
+from misago.core import threadstore
 from misago.conf.context_processors import settings
 from misago.conf.dbsettings import db_settings
 
@@ -8,6 +9,9 @@ class MockRequest(object):
 
 
 class ContextProcessorTests(TestCase):
+    def tearDown(self):
+        threadstore.clear()
+
     def test_db_settings(self):
         """DBSettings are exposed to templates"""
         mock_request = MockRequest()

+ 4 - 0
misago/conf/tests/test_migrationutils.py

@@ -1,4 +1,5 @@
 from django.test import TestCase
+from misago.core import threadstore
 from misago.conf import migrationutils
 from misago.conf.models import SettingsGroup, Setting
 
@@ -60,6 +61,9 @@ class DBConfMigrationUtilsTests(TestCase):
         migrationutils.migrate_settings_group(self.orm, self.test_group)
         self.groups_count = SettingsGroup.objects.count()
 
+    def tearDown(self):
+        threadstore.clear()
+
     def test_get_custom_group_and_settings(self):
         """tests setup created settings group"""
         custom_group = migrationutils.get_group(self.orm,

+ 66 - 0
misago/conf/tests/test_settings.py

@@ -1,10 +1,16 @@
 from django.conf import settings as dj_settings
 from django.test import TestCase
+from misago.core import threadstore
 from misago.conf.gateway import settings as gateway
 from misago.conf.dbsettings import db_settings
+from misago.conf.migrationutils import migrate_settings_group
+from misago.conf.models import SettingsGroup, Setting
 
 
 class DBSettingsTests(TestCase):
+    def tearDown(self):
+        threadstore.clear()
+
     def test_get_existing_setting(self):
         """forum_name is defined"""
         self.assertEqual(db_settings.forum_name, 'Misago')
@@ -14,6 +20,9 @@ class DBSettingsTests(TestCase):
 
 
 class GatewaySettingsTests(TestCase):
+    def tearDown(self):
+        threadstore.clear()
+
     def test_get_existing_setting(self):
         """forum_name is defined"""
         self.assertEqual(gateway.forum_name, db_settings.forum_name)
@@ -22,3 +31,60 @@ class GatewaySettingsTests(TestCase):
 
         with self.assertRaises(AttributeError):
             gateway.LoremIpsum
+
+    def test_setting_lazy(self):
+        orm = {
+            'conf.SettingsGroup': SettingsGroup,
+            'conf.Setting': Setting,
+        }
+
+        test_group = {
+            'key': 'test_group',
+            'name': "Test settings",
+            'description': "Those are test settings.",
+            'settings': (
+                {
+                    'setting': 'fish_name',
+                    'name': "Fish's name",
+                    'value': "Greedy Eric",
+                    'field_extra': {
+                           'min_length': 2,
+                           'max_length': 255
+                        },
+                    'is_lazy': False
+                },
+                {
+                    'setting': 'lazy_fish_name',
+                    'name': "Fish's name",
+                    'value': "Lazy Eric",
+                    'field_extra': {
+                           'min_length': 2,
+                           'max_length': 255
+                        },
+                    'is_lazy': True
+                },
+                {
+                    'setting': 'lazy_empty_setting',
+                    'name': "Fish's name",
+                    'field_extra': {
+                           'min_length': 2,
+                           'max_length': 255
+                        },
+                    'is_lazy': True
+                },
+            )
+        }
+
+        migrate_settings_group(orm, test_group)
+
+        self.assertTrue(gateway.lazy_fish_name)
+        self.assertTrue(db_settings.lazy_fish_name)
+
+        self.assertTrue(gateway.lazy_fish_name == True)
+        self.assertTrue(db_settings.lazy_fish_name == True)
+
+        self.assertTrue(not gateway.lazy_empty_setting)
+        self.assertTrue(not db_settings.lazy_empty_setting)
+        db_settings.get_lazy_setting('lazy_fish_name')
+        with self.assertRaises(ValueError):
+            db_settings.get_lazy_setting('fish_name')