def config_page(): """ Display general configuration. Display specific static weblog engine configuration. Allow to change values. """ check_config() message = '' message_type = 'none' config = hymby.params engine_config = hymby.engine.get_config(hymby) if request.POST.get('save', '').strip(): r = request.POST config_filename = hymby.params['filename'] # Write changes using an ugly method: Get current config, and update it with form values. Then write all in the config. conf = ConfigDict().load_config(config_filename) for field in dict(r): # do not take save button value if field == 'save': continue value = r[field] conf.update('general', {field: value}) reset_config(conf) refresh() message = 'General configuration updated.' message_type = 'success' config = hymby.params # needed as we update it elif request.POST.get('save_engine'): r = request.POST hymby.engine.set_config(hymby, dict(r)) refresh() message = '%s Configuration updated.' % hymby.params.get('general.engine', '') message_type = 'success' engine_config = hymby.engine.get_config(hymby) # needed as we update it return template('config', title='Configuration', config=config, engine_config=engine_config, message=message, message_type=message_type)
def test_meta(self): c = ConfigDict() c.meta_set('bool', 'filter', bool) c.meta_set('int', 'filter', int) c['bool'] = 'I am so true!' c['int'] = '6' self.assertTrue(c['bool'] is True) self.assertEqual(c['int'], 6) self.assertRaises(ValueError, lambda: c.update(int='not an int'))
def test_namespaces(self): c = ConfigDict() c.update('a.b', key='value') self.assertEqual(c['a.b.key'], 'value')
def test_update(self): c = ConfigDict() c['key'] = 'value' c.update(key='value2', key2='value3') self.assertEqual(c['key'], 'value2') self.assertEqual(c['key2'], 'value3')