You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@gump.apache.org by le...@apache.org on 2005/07/08 16:28:06 UTC
svn commit: r209789 -
/gump/branches/Gump3/pygump/python/gump/test/testConfig.py
Author: leosimons
Date: Fri Jul 8 07:28:06 2005
New Revision: 209789
URL: http://svn.apache.org/viewcvs?rev=209789&view=rev
Log:
Coverage for config.py up to 100% :-)
Modified:
gump/branches/Gump3/pygump/python/gump/test/testConfig.py
Modified: gump/branches/Gump3/pygump/python/gump/test/testConfig.py
URL: http://svn.apache.org/viewcvs/gump/branches/Gump3/pygump/python/gump/test/testConfig.py?rev=209789&r1=209788&r2=209789&view=diff
==============================================================================
--- gump/branches/Gump3/pygump/python/gump/test/testConfig.py (original)
+++ gump/branches/Gump3/pygump/python/gump/test/testConfig.py Fri Jul 8 07:28:06 2005
@@ -29,6 +29,15 @@
import logging
import logging.config
+class CustomConfig:
+ irc = "user@freenode.net/gump"
+
+ def __hasattr__(self, name):
+ return True
+
+ def __getattr__(self, name):
+ return name
+
class ConfigTestCase(MockTestCase):
def setUp(self):
# replace various methods with mockup versions
@@ -42,13 +51,22 @@
return self.get_mock_logger(config, name)
self.old_get_logger = gump.config.get_logger
gump.config.get_logger = new_get_logger
+ self.mock_log = self.get_mock_logger(CustomConfig(),"bla")
+
+ def new_shutdown_logging():
+ pass
+
+ self.old_shutdown = logging.shutdown
+ logging.shutdown = new_shutdown_logging
def tearDown(self):
logging.config.fileConfig = self.old_fileConfig
+ logging.shutdown = self.old_shutdown
gump.config.get_logger = self.old_get_logger
def get_mock_logger(self, config, name):
- self.failUnless(unittest.TestCase, isinstance(config, Config))
+ self.failUnless(unittest.TestCase,
+ isinstance(config, Config) or isinstance(config, CustomConfig))
self.failUnless(unittest.TestCase, isinstance(name, basestring))
mock = self.mock()
@@ -62,6 +80,10 @@
mock.stubs().method("exception")
mock.stubs().method("close")
return mock
+
+ def test_get_logger(self):
+ logger = self.old_get_logger(CustomConfig(), "bla")
+ self.failUnless(isinstance(logger, logging.Logger))
def test_run_config_hooks(self):
class MockConfig:
@@ -96,18 +118,34 @@
self.assertEqual(arg, value)
self.assertEqual(c.log_level, logging.WARN)
self.assertFalse(c.debug)
-
- def test_get_plugins(self):
- class Config:
- irc = "user@freenode.net/gump"
-
+
+ class Settings2:
+ debug = False
+ quiet = False
def __hasattr__(self, name):
+ if name == "paths_pygump" or name == "paths_metadata" or name == "do_mail":
+ return False
return True
def __getattr__(self, name):
+ if name == "paths_pygump" or name == "paths_metadata" or name == "do_mail":
+ raise Exception
return name
+
+ s = Settings2()
+ c = get_config(s)
+ self.assertEqual(c.log_level, logging.INFO)
+
+ self.failUnless(c.paths_pygump.find("pygump") > 0)
+ self.failUnless(c.paths_metadata.find("metadata") > 0)
+ self.failUnless(c.do_mail)
+
+ c = Config([])
+ self.assertRaises(AttributeError, getattr, c, "bla")
- conf = Config()
+
+ def test_get_plugins(self):
+ conf = CustomConfig()
(a,b,c) = get_plugins(conf)
def test_results(a,b,c):
@@ -122,9 +160,61 @@
self.failUnless(isinstance(p,AbstractPlugin))
test_results(a,b,c)
+ conf.irc = False
conf.do_build = False
conf.do_update = False
conf.do_fill_database = False
conf.debug = False
(a,b,c) = get_plugins(conf)
test_results(a,b,c)
+
+ def test_get_plugin(self):
+ (a,b,c) = get_plugin(CustomConfig())
+
+ def test_shutdown_logging(self):
+ shutdown_logging()
+
+ def test_get_error_handler(self):
+ conf = CustomConfig()
+ get_error_handler(conf)
+
+ def test_get_db(self):
+ db = get_db(self.mock_log,CustomConfig())
+ self.failUnless(isinstance(db,gump.util.mysql.Database))
+
+ def test_get_dom_implementation(self):
+ i = get_dom_implementation()
+ self.failIfEqual(i, None)
+
+ def test_get_error_handler(self):
+ e = get_error_handler(CustomConfig())
+ self.failUnless(callable(e.handle))
+
+ def test_get_engine_loader(self):
+ vfs = self.mock()
+ vfs.stubs().method("get_as_stream")
+
+ l = get_engine_loader(self.mock_log, vfs)
+ self.failUnless(callable(l.get_workspace_tree))
+ l = get_engine_loader(self.mock_log)
+ self.failUnless(callable(l.get_workspace_tree))
+
+ def test_get_engine_normalizer(self):
+ n = get_engine_normalizer(self.mock_log)
+
+ def test_get_engine_objectifier(self):
+ o = get_engine_objectifier(CustomConfig(),self.mock_log)
+
+ def test_get_engine_verifier(self):
+ v = get_engine_verifier(CustomConfig(), get_engine_walker(CustomConfig()))
+
+ def test_get_engine_walker(self):
+ w = get_engine_walker(CustomConfig())
+
+ def test_get_vfs(self):
+ c = CustomConfig()
+ c.paths_work = os.path.join(os.environ["GUMP_HOME"], "work", "pygump", "unittests")
+ v = get_vfs(c)
+ self.failUnless(callable(v.get_as_stream))
+ import shutil
+ shutil.rmtree(c.paths_work)
\ No newline at end of file