def test_settings_load_rawdata(self): group = self._create_default_group() get_settings()._load({'group.node1': 'val1'}) # new value self.assertEqual(group['node1'], 'val1') # default value self.assertEqual(group['node2'], 10)
def test_settings_init_with_no_loader_with_defaults(self): group = self._create_default_group() get_settings().init({'group.node1': 'new-default', 'group.node2': 50}) self.assertEqual(group['node1'], 'new-default') self.assertEqual(group['node2'], 50) self.assertEqual(group.schema['node1'].default, 'new-default') self.assertEqual(group.schema['node2'].default, 50)
def test_settings_load_rawdata_and_change_defaults(self): group = self._create_default_group() # change defaults get_settings()._load({'group.node2': 30}, setdefaults=True) # new values self.assertEqual(group['node1'], 'default1') self.assertEqual(group['node2'], 30) self.assertEqual(group.schema['node1'].default, 'default1') self.assertEqual(group.schema['node2'].default, 30)
def run(self): # print defaults if self.options.printcfg: data = get_settings().export(True) parser = ConfigParser.ConfigParser(dict_type=OrderedDict) items = data.items() items.sort() for key, val in items: parser.set(ConfigParser.DEFAULTSECT, key, val) fp = StringIO.StringIO() try: parser.write(fp) finally: pass print fp.getvalue() return if self.options.all: section = '' else: section = self.options.section # print description groups = get_settings().items() groups.sort() for name, group in groups: if section and name != section: continue print '' title = group.title or name print grpTitleWrap.fill(title) if group.description: print grpDescriptionWrap.fill(group.description) print for node in group.schema: default = '<required>' if node.required else node.default print nameWrap.fill( '%s.%s: %s (%s: %s)' % ( name, node.name, node.title, node.typ.__class__.__name__, default)) print nameTitleWrap.fill(node.description) print
def test_settings_initialize_events(self): self._init_ptah() sm = self.config.registry events = [] def h1(ev): events.append(ev) def h2(ev): events.append(ev) sm.registerHandler(h1, (ptah.config.SettingsInitializing,)) sm.registerHandler(h2, (ptah.config.SettingsInitialized,)) settings = get_settings() ptah.config.initialize_settings({}, self.config) self.assertTrue(isinstance(events[0], ptah.config.SettingsInitializing)) self.assertTrue(isinstance(events[1], ptah.config.SettingsInitialized)) self.assertTrue(events[0].config is self.config) self.assertTrue(events[1].config is self.config)
def test_settings_export(self): node1 = ptah.config.SchemaNode( colander.Str(), name = 'node1', default = 'test') node2 = ptah.config.SchemaNode( colander.Str(), name = 'node2', default = 'test') group = ptah.config.register_settings('group4', node1, node2) self._init_ptah() settings = get_settings() # changed settings self.assertEqual(settings.export(), {}) # default settings self.assertEqual(settings.export(default=True), {'group4.node1': 'test', 'group4.node2': 'test'}) # changed settings group['node2'] = 'changed' data = dict(settings.export()) self.assertEqual(data, {'group4.node2': 'changed'})
def update(self): groups = get_settings().items() groups.sort() data = [] for name, group in groups: title = group.title or name description = group.description schema = [] for node in group.schema: value = node.serialize(group[node.name]) schema.append( ({'name': '%s.%s'%(name, node.name), 'value': '%s: %s'%(node.typ.__class__.__name__, value), 'title': node.title, 'description': node.description, 'default': node.default})) data.append( ({'title': title, 'description': description, 'schema': schema})) return {'data': data}
def test_settings_load_defaults_rawdata_with_errors_in_colander(self): node = ptah.config.SchemaNode( ptah.config.Sequence(), colander.SchemaNode(colander.Str()), name = 'node1', default = ()) group = ptah.config.register_settings('group', node) self._init_ptah() self.assertRaises( KeyError, get_settings()._load, {'group.node1.0': '1', 'group.node1.3': '1'}, setdefaults=True)
def test_settings_load_defaults_rawdata_with_errors_in_values(self): group = self._create_default_group() get_settings()._load({'group.node2': 'vadfw234lue'}, setdefaults=True) self.assertEqual(dict(group), {'node1': 'default1', 'node2': 10})
def test_settings_load_rawdata_with_errors_in_rawdata(self): group = self._create_default_group() get_settings()._load({10: 'value'}) self.assertEqual(dict(group), {'node1': 'default1', 'node2': 10})