def test_settings_initialize_load_default(self): node1 = config.SchemaNode( colander.Str(), name = 'node1', default = 'default1') node2 = config.SchemaNode( colander.Int(), name = 'node2', default = 10) group = config.registerSettings('group', node1, node2) self._init_memphis() config.initializeSettings({'group.node1': 'setting from ini'}) self.assertEqual(group['node1'], 'setting from ini') self.assertEqual(group['node2'], 10)
def test_settings_initialize_load_settings_include(self): path = os.path.join(self.dir, 'settings.cfg') f = open(path, 'wb') f.write('[DEFAULT]\ngroup.node1 = value\n\n') f.close() node1 = config.SchemaNode( colander.Str(), name = 'node1', default = 'default1') node2 = config.SchemaNode( colander.Int(), name = 'node2', default = 10) group = config.registerSettings('group', node1, node2) self._init_memphis() config.initializeSettings({'include': path}) self.assertEqual(group['node1'], 'value') self.assertEqual(group['node2'], 10)
def test_settings_fs_watcher(self): path = os.path.join(self.dir, 'settings.cfg') f = open(path, 'wb') f.write('[DEFAULT]\ngroup.node1 = value\n\n') f.close() node1 = config.SchemaNode( colander.Str(), name = 'node1', default = 'default1') group = config.registerSettings('group', node1) self._init_memphis() class Config(object): def begin(self): pass def end(self): pass config.initializeSettings({'settings': path}, config=Config()) self.assertTrue( isinstance(config.Settings.loader.watcher, iNotifyWatcher)) self.assertEqual(group['node1'], 'value') f = open(path, 'wb') f.write('[DEFAULT]\ngroup.node1 = new_value\n\n') f.close() time.sleep(0.2) self.assertEqual(group['node1'], 'new_value') self.assertTrue(config.Settings.loader.watcher.started) shutdown() self.assertFalse(config.Settings.loader.watcher.started)
def test_settings_initialize_events(self): sm = config.registry events = [] def h1(ev): events.append(ev) def h2(ev): events.append(ev) sm.registerHandler(h1, (config.SettingsInitializing,)) sm.registerHandler(h2, (config.SettingsInitialized,)) self.assertTrue(config.Settings.loader is None) conf = object() config.initializeSettings({}, conf) self.assertTrue(isinstance(events[0], config.SettingsInitializing)) self.assertTrue(isinstance(events[1], config.SettingsInitialized)) self.assertTrue(events[0].config is conf) self.assertTrue(events[1].config is conf) self.assertTrue(isinstance(config.Settings.loader, FileStorage))
def test_settings_initialize_only_once(self): config.initializeSettings({}) self.assertRaises( RuntimeError, config.initializeSettings, {})
def _init_memphis(self, settings={}, handler=None, *args, **kw): config.initialize(('memphis.view', self.__class__.__module__), reg = Components('test')) config.initializeSettings(settings, self.p_config) config.start(self.p_config)