From b3123bd288380bea9e0796f187eed7abf0ab95ea Mon Sep 17 00:00:00 2001 From: Six Date: Tue, 20 Apr 2010 21:46:25 -0400 Subject: added dodai.config.databases support and removed dodai.config.dbs support --- dodai/config/__init__.py | 50 +++++++++++++++++---------------------- test/test_config/test_init.py | 55 +++++++++++++++++++++++-------------------- 2 files changed, 50 insertions(+), 55 deletions(-) diff --git a/dodai/config/__init__.py b/dodai/config/__init__.py index 9eac0da..b976dca 100644 --- a/dodai/config/__init__.py +++ b/dodai/config/__init__.py @@ -16,7 +16,6 @@ # along with Dodai. If not, see . - class Config(object): def __call__(self): @@ -26,38 +25,31 @@ class Config(object): setattr(obj, key, val) return obj - def set(self, key, val): - if not hasattr(self, 'vars'): - self.vars = {} - self.vars[key] = val + def __getattr__(self, key): - def options(self): - if not hasattr(self, '_options'): + if 'files' == key: + from dodai.config.files import ConfigFiles + self.files = ConfigFiles() + return self.files + elif 'options' == key: from dodai.config.option import ConfigOption - self._options = ConfigOption() - return self._options - - def files(self): - if not hasattr(self, '_files'): - from dodai.config.file import ConfigFile - self._files = ConfigFile() - return self._files - - def logs(self): - if not hasattr(self, '_logs'): + self.options = ConfigOption() + return self.options + elif 'logs' == key: from dodai.config.log import ConfigLog - self._logs = ConfigLog() - return self._logs - - def dbs(self): - if not hasattr(self, '_dbs'): - from dodai.config.db import ConfigDb - self._dbs = ConfigDb() - return self._dbs - - - + self.logs = ConfigLog() + return self.logs + elif 'databases' == key: + from dodai.config.databases import ConfigDatabases + self.databases = ConfigDatabases() + return self.databases + else: + raise KeyError(key) + def set(self, key, val): + if not hasattr(self, 'vars'): + self.vars = {} + self.vars[key] = val class ConfigResults(object): diff --git a/test/test_config/test_init.py b/test/test_config/test_init.py index 92b44c6..3246af2 100644 --- a/test/test_config/test_init.py +++ b/test/test_config/test_init.py @@ -15,48 +15,51 @@ # You should have received a copy of the GNU General Public License # along with Dodai. If not, see . +import sys +import os import unittest +path = os.path.realpath(os.path.join(os.path.dirname(__file__), '..', '..')) +sys.path.append(path) from dodai.config import Config +from dodai.config import ConfigResults +from dodai.config.files import ConfigFiles from dodai.config.option import ConfigOption -from dodai.config.file import ConfigFile from dodai.config.log import ConfigLog -from dodai.config import ConfigResults -from dodai.config.db import ConfigDb +from dodai.config.databases import ConfigDatabases class TestConfig(unittest.TestCase): def setUp(self): - self.obj = Config() - - def test_set_one(self): - self.obj.set('foo', 'bar') - self.assertTrue('foo' in self.obj.vars.keys()) + self.config = Config() - def test_set_two(self): - self.obj.set('foo', 'bar') - self.assertTrue('bar' == self.obj.vars['foo']) + def test_files(self): + self.assertTrue(isinstance(self.config.files, ConfigFiles)) def test_options(self): - obj = self.obj.options() - self.assertTrue(isinstance(obj, ConfigOption)) - - def test_files(self): - obj = self.obj.files() - self.assertTrue(isinstance(obj, ConfigFile)) + self.assertTrue(isinstance(self.config.options, ConfigOption)) def test_logs(self): - obj = self.obj.logs() - self.assertTrue(isinstance(obj, ConfigLog)) + self.assertTrue(isinstance(self.config.logs, ConfigLog)) + + def test_databases(self): + self.assertTrue(isinstance(self.config.databases, ConfigDatabases)) + + def test_getattr_error(self): + self.failUnlessRaises(KeyError, self.config.__getattr__, 'foo') + + def test_set_one(self): + self.config.set('foo', 'bar') + self.assertTrue('foo' in self.config.vars.keys()) + + def test_set_two(self): + self.config.set('foo', 'bar') + self.assertTrue('bar' == self.config.vars['foo']) def test_call_one(self): - obj = self.obj() + obj = self.config() self.assertTrue(isinstance(obj, ConfigResults)) def test_call_two(self): - self.obj.set('foo', 'bar') - obj = self.obj() + self.config.set('foo', 'bar') + obj = self.config() self.assertTrue(obj.foo == 'bar') - - def test_db_one(self): - obj = self.obj.dbs() - self.assertTrue(isinstance(obj, ConfigDb)) -- cgit v1.2.3