tests/config.py
author Sandro Knauß <knauss@netzguerilla.net>
Wed, 22 Feb 2012 03:48:10 +0100
branchdevel
changeset 179 af65fcbd59d5
parent 146 8cae6cfc1de4
child 184 6b0ff82dff81
permissions -rw-r--r--
start with implementing iro.config
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
179
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
     1
from mock import patch, Mock
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
     2
from twisted.trial import unittest
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
     3
import signal
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
     4
import io
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
     5
import ConfigParser
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
     6
from  iro import config 
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
     7
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
     8
class TestConfig(unittest.TestCase):
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
     9
    '''test config class'''
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    10
    
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    11
    def setUp(self):
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    12
        self._reloadList=config.config.reloadList
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    13
        config.config.reloadlist=[]
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    14
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    15
    def tearDown(self):
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    16
        config.config.reloadlist = self._reloadList
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    17
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    18
    @patch('iro.config.config')
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    19
    def testReadConfig(self,pConfig):
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    20
        config.readConfig()
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    21
        self.assertEqual([i[0] for i in pConfig.method_calls],["read","reload"])
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    22
        pConfig.read.assert_called_once_with(config.confFiles)
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    23
        pConfig.reload.assert_called_once_with()
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    24
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    25
    @patch('signal.signal')
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    26
    @patch('iro.config.readConfig')
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    27
    def testRegisterSignal(self, pReadConfig, pSignal):
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    28
        config.registerSignal()
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    29
        self.assertEqual(pSignal.call_args[0][0],signal.SIGUSR2)
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    30
        self.assertEqual(pReadConfig.called,0)
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    31
        pSignal.call_args[0][1](None, None)
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    32
        pReadConfig.assert_called_once_with()
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    33
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    34
    def testRegisterReload(self):
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    35
        def x():
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    36
            pass
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    37
        config.config.registerReload(x)
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    38
        self.assertEqual(config.config.reloadList,[x])
146
8cae6cfc1de4 adding ConfigTest and OfferTest
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    39
179
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    40
    def testReload(self):
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    41
        x = Mock()
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    42
        config.config.reloadList = [x] 
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    43
        config.config.reload_()
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    44
        x.assert_called_once_with()
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    45
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    46
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    47
class TestRead(unittest.TestCase):
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    48
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    49
    def tearDown(self):
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    50
        for s in config.config.sections():
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    51
            config.config.remove_section(s)
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    52
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    53
    @patch('iro.config.ConfigParser.read')
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    54
    def testMain(self,pRead):
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    55
        sample_config = """[main]
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    56
hostname = localhost
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    57
port = 8000
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    58
"""
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    59
        config.config.readfp(io.BytesIO(sample_config))
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    60
        config.config.read([])
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    61
        pRead.assert_called_once_with(config.config,[])
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    62
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    63
    @patch('iro.config.ConfigParser.read')
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    64
    def testMainBadPort(self,pRead):
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    65
        sample_config = """[main]
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    66
hostname = localhost
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    67
port = -8000
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    68
"""
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    69
        config.config.readfp(io.BytesIO(sample_config))
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    70
        self.assertRaises(config.ValidateException, config.config.read, [])
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    71
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    72
    @patch('iro.config.ConfigParser.read')
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    73
    def testMainNoMust(self,pRead):
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    74
        sample_config = """[main]
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    75
port = 8000
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    76
"""
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    77
        config.config.readfp(io.BytesIO(sample_config))
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    78
        self.assertRaises(ConfigParser.NoOptionError, config.config.read, [])
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    79
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    80
    def testMust(self):
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    81
        pass
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    82
    testMust.todo= "To implement"
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    83
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    84
    def testProviders(self):
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    85
        pass
af65fcbd59d5 start with implementing iro.config
Sandro Knauß <knauss@netzguerilla.net>
parents: 146
diff changeset
    86
    testProviders.todo = "to implement"