def test_load_dict(self): c = ConfigDict() d = dict(a=dict(b=dict(foo=5, bar=6), baz=7)) c.load_dict(d) self.assertEqual(c['a.b.foo'], 5) self.assertEqual(c['a.b.bar'], 6) self.assertEqual(c['a.baz'], 7)
def test_issue588(self): """`ConfigDict` namespaces break route options""" c = ConfigDict() c.load_dict({'a': {'b': 'c'}}, make_namespaces=True) self.assertEqual('c', c['a.b']) self.assertEqual('c', c['a']['b']) self.assertEqual({'b': 'c'}, c['a'])
def test_issue720(self): """Accept unicode keys.""" try: key = unichr(12354) except NameError: key = chr(12354) c = ConfigDict() c.load_dict({key: 'value'}) self.assertEqual('value', c[key]) c = ConfigDict() c.load_dict({key: {'subkey': 'value'}}) self.assertEqual('value', c[key + '.subkey'])
def test_load_dict(self): c = ConfigDict() d = dict(a=dict(b=dict(foo=5, bar=6), baz=7)) c.load_dict(d) self.assertEqual(c['a.b.foo'], 5) self.assertEqual(c['a.b.bar'], 6) self.assertEqual(c['a.baz'], 7) # unicode keys (see issue #720) try: key = unichr(12354) except NameError: key = chr(12354) c = ConfigDict() c.load_dict({key: 'value'}) self.assertEqual('value', c[key]) c = ConfigDict() c.load_dict({key: {'subkey': 'value'}}) self.assertEqual('value', c[key + '.subkey'])
def test_string_save_keys(self): c = ConfigDict() with self.assertRaises(TypeError): c[5] = 'value' with self.assertRaises(TypeError): c.load_dict({5: 'value'})
def test_string_key_only(self): c = ConfigDict() self.assertRaises(TypeError, lambda: setitem(c, 5, 6)) self.assertRaises(TypeError, lambda: c.load_dict({5:6}))
def test_string_key_only(self): c = ConfigDict() self.assertRaises(TypeError, lambda: setitem(c, 5, 6)) self.assertRaises(TypeError, lambda: c.load_dict({5: 6}))
app_config.load_dict({ 'app': { 'debug': True, 'timezone': 'Europe/Moscow', 'server': 'tornado', 'port': 5040, 'auth': { 'admin': '$2a$10$YOUR-BCRYPT-HASH' }, 'db': { 'path': './data/sqlite.db' } }, 'blog': { 'label': { 'read_more': 'Read full article' }, 'html_parser': 'lxml', # you must install 'lxml' package or use 'html.parser' instead }, 'feed': { 'author': 'Nikita Dementev', 'title': 'Neutral notes', 'subtitle': 'О коде и погоде', }, 'deploy': { 'production': { 'host': '*****@*****.**', 'key_file': '~/.ssh/same_rsa', 'target_dir': '~/www/example.com' } } })
app_config = ConfigDict() app_config.load_dict({ 'app': { 'debug': True, 'timezone': 'Europe/Moscow', 'server': 'tornado', 'port': 5040, 'auth': { 'admin': '$2a$10$YOUR-BCRYPT-HASH' }, 'db': { 'path': './data/sqlite.db' } }, 'blog': { 'label': {'read_more': 'Read full article'}, 'html_parser': 'lxml', # you must install 'lxml' package or use 'html.parser' instead }, 'feed': { 'author': 'Nikita Dementev', 'title': 'Neutral notes', 'subtitle': 'О коде и погоде', }, 'deploy': { 'production': { 'host': '*****@*****.**', 'key_file': '~/.ssh/same_rsa', 'target_dir': '~/www/example.com' } } })