diff -r 352527f2b6ca -r 4d6130d91e56 tests/config.py --- a/tests/config.py Sat Feb 25 16:22:21 2012 +0100 +++ b/tests/config.py Sun Feb 26 17:48:28 2012 +0100 @@ -6,7 +6,7 @@ from iro import config, error from iro.offer.provider import Provider, providers -class TestConfig(unittest.TestCase): +class TestModuleConfig(unittest.TestCase): '''test config class''' def setUp(self): @@ -19,7 +19,7 @@ @patch('iro.config.main') @patch('iro.config.configParser') def testReadConfig(self,pConfig,pMain): - pMain.read = False + pMain._init = True config.readConfig() self.assertEqual([i[0] for i in pConfig.method_calls],["read","reload","items"]) pConfig.read.assert_called_once_with(config.confFiles) @@ -27,6 +27,22 @@ pConfig.reload.assert_called_once_with() self.assertEqual(pMain.load.called,1) + @patch('iro.config.main') + @patch('iro.config.configParser') + def testReadConfigInit(self,pConfig,pMain): + pConfig.items.return_value = [('dburl',''),("port",1000)] + pMain._init = False + config.readConfig() + self.assertEqual([i[0] for i in pConfig.method_calls],["read","reload","items"]) + self.assertEqual([i[0] for i in pMain.method_calls],["same"]) + sa = pMain.same.call_args_list[0][0][0] + self.assertEqual(sa.port,1000) + self.assertEqual(sa.dburl,'') + pMain.same.return_value = False + self.assertRaises(Exception,config.readConfig,) + + + @patch('signal.signal') @patch('iro.config.readConfig') def testRegisterSignal(self, pReadConfig, pSignal): @@ -85,7 +101,7 @@ @patch('iro.config.ConfigParser.read') def testMust(self,pRead): v=Mock() - config.main.options["test"] = config.Option(v) + config.main.options["test"] = config.Option(v,default="jehei") try: sample_config = """[main] dburl = sdfawersdf @@ -94,6 +110,8 @@ config.configParser.readfp(io.BytesIO(sample_config)) config.configParser.read([]) self.assertEqual(v.called,0) + config.main.load(config.configParser.items("main")) + self.assertEqual(config.main.test,'jehei') sample_config = """[main] dburl = adfgsdftsfg port = 8000 @@ -128,3 +146,23 @@ v.assert_called_once_with("foo","test") finally: del(providers["test"]) + + +class TestConfig(unittest.TestCase): + def testSame(self): + c1 = config.Config("1") + c1.port = 1 + c1.dburl = "dburl1" + c2 = config.Config("2") + c2.port = 1 + c2.dburl = "dburl1" + self.assertTrue(c1.same(c2)) + self.assertTrue(c1.same(c1)) + self.assertTrue(c2.same(c1)) + c2.port = 2 + self.assertFalse(c2.same(c1)) + self.assertFalse(c1.same(c2)) + c2.port = 1 + c2.dburl = "dburl2" + self.assertFalse(c2.same(c1)) + self.assertFalse(c1.same(c2))