]> kaliko git repositories - mpd-sima.git/blob - tests/test_config.py
Fixed test_config
[mpd-sima.git] / tests / test_config.py
1 #!/usr/bin/env python3
2 # coding: utf-8
3
4 import unittest
5 import os
6
7 from unittest.mock import patch
8
9 from sima.utils.config import ConfMan, DIRNAME, CONF_FILE
10 # import set_logger to set TRACE_LEVEL_NUM
11 from sima.lib.logger import set_logger
12
13
14 class TestConfMan(unittest.TestCase):
15
16     @patch('sima.utils.config.makedirs')
17     @patch('sima.utils.config.chmod')
18     @patch('sima.utils.config.ConfMan.control_facc')
19     def test_XDG_var(self, *args):
20         config_home = '/foo/bar'
21         os.environ['XDG_CONFIG_HOME'] = config_home
22         conf_file = os.path.join(config_home, DIRNAME, CONF_FILE)
23         conf = ConfMan({})
24         self.assertEqual(conf.conf_file, conf_file)
25         data_home = '/bar/foo'
26         os.environ['XDG_DATA_HOME'] = data_home
27         var_dir = os.path.join(data_home, DIRNAME)
28         conf = ConfMan({})
29         self.assertEqual(conf.config['sima']['var_dir'], var_dir)
30
31     @patch('sima.utils.config.isdir')
32     @patch('sima.utils.config.ConfMan.control_facc')
33     def test_default_locations(self, mock_isdir, *args):
34         home = '/foo'
35         mock_isdir.return_value = True
36         os.environ.pop('XDG_CONFIG_HOME', None)
37         os.environ.pop('XDG_DATA_HOME', None)
38         os.environ['HOME'] = home
39         conf = ConfMan({})
40         # Test var dir construction
41         constructed_var_dir = conf.config['sima']['var_dir']
42         expected_var_dir = os.path.join(home, '.local', 'share', DIRNAME)
43         self.assertEqual(constructed_var_dir, expected_var_dir)
44         # Test config construction
45         constructed_config_location = conf.conf_file
46         expected_config = os.path.join(home, '.config', DIRNAME, CONF_FILE)
47         self.assertEqual(constructed_config_location, expected_config)
48
49 # VIM MODLINE
50 # vim: ai ts=4 sw=4 sts=4 expandtab fileencoding=utf8