tests/config.py
branchdevel
changeset 186 b381eaa774ab
parent 184 6b0ff82dff81
child 187 352527f2b6ca
--- a/tests/config.py	Thu Feb 23 16:59:49 2012 +0100
+++ b/tests/config.py	Sat Feb 25 16:12:07 2012 +0100
@@ -3,25 +3,29 @@
 import signal
 import io
 import ConfigParser
-from  iro import config 
+from  iro import config, error 
 from iro.offer.provider import Provider, providers
 
 class TestConfig(unittest.TestCase):
     '''test config class'''
     
     def setUp(self):
-        self._reloadList=config.config.reloadList
-        config.config.reloadList=[]
+        self._reloadList=config.configParser.reloadList
+        config.configParser.reloadList=[]
 
     def tearDown(self):
-        config.config.reloadList = self._reloadList
+        config.configParser.reloadList = self._reloadList
 
-    @patch('iro.config.config')
-    def testReadConfig(self,pConfig):
+    @patch('iro.config.main')
+    @patch('iro.config.configParser')
+    def testReadConfig(self,pConfig,pMain):
+        pMain.read = False
         config.readConfig()
-        self.assertEqual([i[0] for i in pConfig.method_calls],["read","reload"])
+        self.assertEqual([i[0] for i in pConfig.method_calls],["read","reload","items"])
         pConfig.read.assert_called_once_with(config.confFiles)
+        pConfig.items.assert_called_once_with("main")
         pConfig.reload.assert_called_once_with()
+        self.assertEqual(pMain.load.called,1)
 
     @patch('signal.signal')
     @patch('iro.config.readConfig')
@@ -35,93 +39,97 @@
     def testRegisterReload(self):
         def x():
             pass
-        config.config.registerReload(x)
-        self.assertEqual(config.config.reloadList,[x])
+        config.configParser.registerReload(x)
+        self.assertEqual(config.configParser.reloadList,[x])
 
     def testReload(self):
         x = Mock()
-        config.config.reloadList = [x] 
-        config.config.reload_()
+        config.configParser.reloadList = [x] 
+        config.configParser.reload_()
         x.assert_called_once_with()
 
 
 class TestRead(unittest.TestCase):
 
     def tearDown(self):
-        for s in config.config.sections():
-            config.config.remove_section(s)
+        for s in config.configParser.sections():
+            config.configParser.remove_section(s)
 
     @patch('iro.config.ConfigParser.read')
     def testMain(self,pRead):
         sample_config = """[main]
 hostname = localhost
 port = 8000
+dburl = sdfdsafgsfdg
 """
-        config.config.readfp(io.BytesIO(sample_config))
-        config.config.read([])
-        pRead.assert_called_once_with(config.config,[])
+        config.configParser.readfp(io.BytesIO(sample_config))
+        config.configParser.read([])
+        pRead.assert_called_once_with(config.configParser,[])
 
     @patch('iro.config.ConfigParser.read')
     def testMainBadPort(self,pRead):
         sample_config = """[main]
 hostname = localhost
 port = -8000
+dburl = sadfaserasg
 """
-        config.config.readfp(io.BytesIO(sample_config))
-        self.assertRaises(config.ValidateException, config.config.read, [])
+        config.configParser.readfp(io.BytesIO(sample_config))
+        self.assertRaises(error.ValidateException, config.configParser.read, [])
 
     @patch('iro.config.ConfigParser.read')
     def testMainNoMust(self,pRead):
         sample_config = """[main]
 port = 8000
+dburl = asdfgdsrg
 """
-        config.config.readfp(io.BytesIO(sample_config))
-        self.assertRaises(ConfigParser.NoOptionError, config.config.read, [])
+        config.configParser.readfp(io.BytesIO(sample_config))
+        self.assertRaises(config.NeededOption, config.configParser.read, [])
 
     @patch('iro.config.ConfigParser.read')
     def testMust(self,pRead):
         v=Mock()
-        config.main["test"] = config.Option(v)
+        config.main.options["test"] = config.Option(v)
         try:
             sample_config = """[main]
 hostname = localhost
+dburl = sdfawersdf
 port = 8000
 """
-            config.config.readfp(io.BytesIO(sample_config))
-            config.config.read([])
+            config.configParser.readfp(io.BytesIO(sample_config))
+            config.configParser.read([])
             self.assertEqual(v.called,0)
             sample_config = """[main]
 hostname = localhost
+dburl = adfgsdftsfg
 port = 8000
 test = foohu
     """
-            config.config.readfp(io.BytesIO(sample_config))
-            config.config.read([])
+            config.configParser.readfp(io.BytesIO(sample_config))
+            config.configParser.read([])
             v.assert_called_once_with("foohu","test")
         finally:
-            del(config.main["test"])
+            del(config.main.options["test"])
 
     @patch('iro.config.ConfigParser.read')
     def testProviders(self, pRead):
         v=Mock()
         class TestProvider(Provider):
-            def __init__(self,name,c):
-                Provider.__init__(self,name,c)
+            def __init__(self,name):
+                Provider.__init__(self,name)
                 self.options.update({"test":config.Option(v)})
-                self.loadConfig()
         providers["test"]=TestProvider
         try:
             sample_config = """[p]
 """
-            config.config.readfp(io.BytesIO(sample_config))
-            self.assertRaises(ConfigParser.NoOptionError, config.config.read, [])  
+            config.configParser.readfp(io.BytesIO(sample_config))
+            self.assertRaises(ConfigParser.NoOptionError, config.configParser.read, [])  
             self.assertEqual(v.called,0)
             sample_config = """[p]
 typ= test
 test= foo
 """
-            config.config.readfp(io.BytesIO(sample_config))
-            config.config.read([])
+            config.configParser.readfp(io.BytesIO(sample_config))
+            config.configParser.read([])
             v.assert_called_once_with("foo","test")
         finally:
             del(providers["test"])