def test_nested(self): config = ConfigStore() f = StringIO(SIMPLE_TOML_CONFIG) config.load_from_file(f) server_config = config.section('server') port = server_config.option('port') self.assertEqual(port.get(), 4567) lol = config.section('lol') test = lol.option('nonexistant', default='hi') self.assertEqual(test.get(), 'hi') raw = config.get_dict() self.assertEqual(raw['server']['port'], 4567) self.assertEqual(raw['lol']['nonexistant'], 'hi') raw = server_config.get_dict() self.assertEqual(raw['port'], 4567) self.assertEqual(raw['name'], 'piccolo instance') server_config.update_from_dict({'port': 1}) raw = server_config.get_dict() self.assertEqual(raw['port'], 1) self.assertEqual(raw['name'], 'piccolo instance') server_config.load_from_dict({'port': 1}) self.assertEqual(server_config.get_dict(), {'port': 1}) self.assertEqual(test.get(), 'hi')
def test_nested_update(self): config = ConfigStore() f = StringIO(SIMPLE_TOML_CONFIG) config.load_from_file(f) updates = {'server': {'things': {'thing2': 'added'}}} config.update_from_dict(updates) raw = config.get_dict() self.assertEqual(raw['server']['things']['thing1'], 'something') self.assertEqual(raw['server']['things']['thing2'], 'added') self.assertEqual(raw['server']['name'], 'piccolo instance')