tests/config.py
branchdevel
changeset 188 4d6130d91e56
parent 187 352527f2b6ca
child 220 602720314930
equal deleted inserted replaced
187:352527f2b6ca 188:4d6130d91e56
     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))