Changeset 578:c249d8fce092
- Timestamp:
- 30/04/12 14:23:25 (13 months ago)
- Branch:
- multisite
- Location:
- cyclope
- Files:
-
- 2 edited
-
core/multisite/middleware.py (modified) (2 diffs)
-
tests.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
cyclope/core/multisite/middleware.py
r575 r578 59 59 60 60 admin.autodiscover() 61 for setting_name in dir(site_settings):62 if setting_name == setting_name.upper():63 old_value = getattr(settings, setting_name, None)64 new_value = getattr(site_settings, setting_name)65 61 66 # this is a dynamic setting 67 if issubclass(type(old_value), DynamicSetting): 68 # the current site did not override the default 69 if issubclass(type(new_value), DynamicSetting): 70 old_value.set(getattr(default_settings, setting_name)) 71 else: 72 old_value.set(new_value) 73 else: 74 setattr(settings, setting_name, new_value) 75 62 replace_settings(settings, site_settings) 76 63 cyc_settings.reload_settings() 77 64 … … 86 73 patch_vary_headers(response, ('Host',)) 87 74 return response 75 76 def replace_settings(old_settings, new_settings): 77 """ 78 Updates old_settings values with new_settings's using DynamicSettings. 79 """ 80 for setting_name in dir(new_settings): 81 if setting_name == setting_name.upper(): 82 old_value = getattr(old_settings, setting_name, None) 83 new_value = getattr(new_settings, setting_name) 84 85 # this is a dynamic setting 86 if issubclass(type(old_value), DynamicSetting): 87 # the current site did not override the default 88 if issubclass(type(new_value), DynamicSetting): 89 old_value.set(getattr(default_settings, setting_name)) 90 else: 91 old_value.set(new_value) 92 else: 93 setattr(old_settings, setting_name, new_value) 94 -
cyclope/tests.py
r573 r578 44 44 from cyclope.sitemaps import CollectionSitemap, CategorySitemap, MenuSitemap 45 45 from cyclope.core.multisite.threadlocals import DynamicSetting 46 from cyclope.core.multisite.middleware import replace_settings 46 47 47 48 … … 533 534 self.assertEqual(float(self.ds), 1.0) 534 535 536 class DynamicSettingsMiddlewareTestCase(TestCase): 537 538 def test_replace_settings(self): 539 540 class Setting(object): pass 541 settings_a = Setting() 542 settings_a.FOO = 3 543 544 settings_new = Setting() 545 settings_new.FOO = 5 546 547 replace_settings(settings_a, settings_new) 548 self.assertTrue(isinstance(settings_a.FOO, int)) 549 self.assertEqual(int(settings_a.FOO), 5) 550 551 settings_a.FOO = DynamicSetting("FOO") 552 settings_a.FOO.set(3) 553 settings_new.FOO = 5 554 replace_settings(settings_a, settings_new) 555 self.assertTrue(isinstance(settings_a.FOO, DynamicSetting)) 556 self.assertEqual(int(settings_a.FOO), 5) 557 558 559 560 535 561 536 562
Note: See TracChangeset
for help on using the changeset viewer.

