Esempio n. 1
0
    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)
Esempio n. 2
0
    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)
Esempio n. 3
0
    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)
Esempio n. 4
0
    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))
Esempio n. 5
0
    def test_settings_initialize_only_once(self):
        config.initializeSettings({})

        self.assertRaises(
            RuntimeError,
            config.initializeSettings, {})
Esempio n. 6
0
 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)