Update config module to provide dict like access

This commit is contained in:
Stefan Hacker
2010-12-31 15:04:34 +01:00
parent 8cd1d39fe7
commit 852549c44c
2 changed files with 16 additions and 0 deletions

View File

@@ -85,6 +85,13 @@ class Config(object):
self.__dict__[section].__dict__[name] = conv(cfg.get(section, name)) self.__dict__[section].__dict__[name] = conv(cfg.get(section, name))
except (ValueError, ConfigParser.NoSectionError, ConfigParser.NoOptionError): except (ValueError, ConfigParser.NoSectionError, ConfigParser.NoOptionError):
self.__dict__[section].__dict__[name] = vdefault self.__dict__[section].__dict__[name] = vdefault
def __getitem__(self, key):
try:
return getattr(self, key)
except AttributeError, e:
raise KeyError(e)
def x2bool(s): def x2bool(s):
""" """

View File

@@ -130,6 +130,15 @@ value = True
assert(cfg.world.domination == False) assert(cfg.world.domination == False)
assert(cfg.somethingelse.bla == "test") assert(cfg.somethingelse.bla == "test")
assert(cfg.world.somenum == 0) assert(cfg.world.somenum == 0)
def testGetItem(self):
cfg = Config(default=self.cfg_default)
assert(cfg["world"]["domination"] == False)
def invalidaccess(c):
c["nointhisconfig"]
self.assertRaises(KeyError, invalidaccess, cfg)
if __name__ == "__main__": if __name__ == "__main__":