7 from unittest.mock import patch
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
14 class TestConfMan(unittest.TestCase):
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)
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)
29 self.assertEqual(conf.config['sima']['var_dir'], var_dir)
31 @patch('sima.utils.config.isdir')
32 @patch('sima.utils.config.ConfMan.control_facc')
33 def test_default_locations(self, mock_isdir, *args):
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
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)
50 # vim: ai ts=4 sw=4 sts=4 expandtab fileencoding=utf8