summaryrefslogtreecommitdiff
path: root/functional_tests/test_config_files.py
blob: 5f18f3ac5c18c5a17c974b671e1cefc1ba1ab2d8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import logging
import os
import unittest
from nose.config import Config

support = os.path.join(os.path.dirname(__file__), 'support')

class TestConfigurationFromFile(unittest.TestCase):
    def setUp(self):
        self.cfg_file = os.path.join(support, 'test.cfg')
        # install mock root logger so that these tests don't stomp on
        # the real logging config of the test runner
        class MockLogger(logging.Logger):
            root = logging.RootLogger(logging.WARNING)
            manager = logging.Manager(root)
        
        self.real_logger = logging.Logger
        self.real_root = logging.root
        logging.Logger = MockLogger
        logging.root = MockLogger.root

    def tearDown(self):
        # reset real root logger
        logging.Logger = self.real_logger
        logging.root = self.real_root
        
    def test_load_config_file(self):
        c = Config(files=self.cfg_file)
        c.configure(['test_load_config_file'])
        self.assertEqual(c.verbosity, 10)

    def test_config_file_set_by_arg(self):
        c = Config()
        c.configure(['test_config_file_set_by_arg',
                     '-c', self.cfg_file, '-v'])
        # 10 from file, 1 more from cmd line
        self.assertEqual(c.verbosity, 11)


if __name__ == '__main__':
    unittest.main()