4 import io |
4 import io |
5 import ConfigParser |
5 import ConfigParser |
6 from iro import config, error |
6 from iro import config, error |
7 from iro.offer.provider import Provider, providers |
7 from iro.offer.provider import Provider, providers |
8 |
8 |
9 class TestConfig(unittest.TestCase): |
9 class TestModuleConfig(unittest.TestCase): |
10 '''test config class''' |
10 '''test config class''' |
11 |
11 |
12 def setUp(self): |
12 def setUp(self): |
13 self._reloadList=config.configParser.reloadList |
13 self._reloadList=config.configParser.reloadList |
14 config.configParser.reloadList=[] |
14 config.configParser.reloadList=[] |
17 config.configParser.reloadList = self._reloadList |
17 config.configParser.reloadList = self._reloadList |
18 |
18 |
19 @patch('iro.config.main') |
19 @patch('iro.config.main') |
20 @patch('iro.config.configParser') |
20 @patch('iro.config.configParser') |
21 def testReadConfig(self,pConfig,pMain): |
21 def testReadConfig(self,pConfig,pMain): |
22 pMain.read = False |
22 pMain._init = True |
23 config.readConfig() |
23 config.readConfig() |
24 self.assertEqual([i[0] for i in pConfig.method_calls],["read","reload","items"]) |
24 self.assertEqual([i[0] for i in pConfig.method_calls],["read","reload","items"]) |
25 pConfig.read.assert_called_once_with(config.confFiles) |
25 pConfig.read.assert_called_once_with(config.confFiles) |
26 pConfig.items.assert_called_once_with("main") |
26 pConfig.items.assert_called_once_with("main") |
27 pConfig.reload.assert_called_once_with() |
27 pConfig.reload.assert_called_once_with() |
28 self.assertEqual(pMain.load.called,1) |
28 self.assertEqual(pMain.load.called,1) |
|
29 |
|
30 @patch('iro.config.main') |
|
31 @patch('iro.config.configParser') |
|
32 def testReadConfigInit(self,pConfig,pMain): |
|
33 pConfig.items.return_value = [('dburl',''),("port",1000)] |
|
34 pMain._init = False |
|
35 config.readConfig() |
|
36 self.assertEqual([i[0] for i in pConfig.method_calls],["read","reload","items"]) |
|
37 self.assertEqual([i[0] for i in pMain.method_calls],["same"]) |
|
38 sa = pMain.same.call_args_list[0][0][0] |
|
39 self.assertEqual(sa.port,1000) |
|
40 self.assertEqual(sa.dburl,'') |
|
41 pMain.same.return_value = False |
|
42 self.assertRaises(Exception,config.readConfig,) |
|
43 |
|
44 |
29 |
45 |
30 @patch('signal.signal') |
46 @patch('signal.signal') |
31 @patch('iro.config.readConfig') |
47 @patch('iro.config.readConfig') |
32 def testRegisterSignal(self, pReadConfig, pSignal): |
48 def testRegisterSignal(self, pReadConfig, pSignal): |
33 config.registerSignal() |
49 config.registerSignal() |
83 self.assertRaises(config.NeededOption, config.configParser.read, []) |
99 self.assertRaises(config.NeededOption, config.configParser.read, []) |
84 |
100 |
85 @patch('iro.config.ConfigParser.read') |
101 @patch('iro.config.ConfigParser.read') |
86 def testMust(self,pRead): |
102 def testMust(self,pRead): |
87 v=Mock() |
103 v=Mock() |
88 config.main.options["test"] = config.Option(v) |
104 config.main.options["test"] = config.Option(v,default="jehei") |
89 try: |
105 try: |
90 sample_config = """[main] |
106 sample_config = """[main] |
91 dburl = sdfawersdf |
107 dburl = sdfawersdf |
92 port = 8000 |
108 port = 8000 |
93 """ |
109 """ |
94 config.configParser.readfp(io.BytesIO(sample_config)) |
110 config.configParser.readfp(io.BytesIO(sample_config)) |
95 config.configParser.read([]) |
111 config.configParser.read([]) |
96 self.assertEqual(v.called,0) |
112 self.assertEqual(v.called,0) |
|
113 config.main.load(config.configParser.items("main")) |
|
114 self.assertEqual(config.main.test,'jehei') |
97 sample_config = """[main] |
115 sample_config = """[main] |
98 dburl = adfgsdftsfg |
116 dburl = adfgsdftsfg |
99 port = 8000 |
117 port = 8000 |
100 test = foohu |
118 test = foohu |
101 """ |
119 """ |
126 config.configParser.readfp(io.BytesIO(sample_config)) |
144 config.configParser.readfp(io.BytesIO(sample_config)) |
127 config.configParser.read([]) |
145 config.configParser.read([]) |
128 v.assert_called_once_with("foo","test") |
146 v.assert_called_once_with("foo","test") |
129 finally: |
147 finally: |
130 del(providers["test"]) |
148 del(providers["test"]) |
|
149 |
|
150 |
|
151 class TestConfig(unittest.TestCase): |
|
152 def testSame(self): |
|
153 c1 = config.Config("1") |
|
154 c1.port = 1 |
|
155 c1.dburl = "dburl1" |
|
156 c2 = config.Config("2") |
|
157 c2.port = 1 |
|
158 c2.dburl = "dburl1" |
|
159 self.assertTrue(c1.same(c2)) |
|
160 self.assertTrue(c1.same(c1)) |
|
161 self.assertTrue(c2.same(c1)) |
|
162 c2.port = 2 |
|
163 self.assertFalse(c2.same(c1)) |
|
164 self.assertFalse(c1.same(c2)) |
|
165 c2.port = 1 |
|
166 c2.dburl = "dburl2" |
|
167 self.assertFalse(c2.same(c1)) |
|
168 self.assertFalse(c1.same(c2)) |