X-Git-Url: https://git.kaliko.me/?a=blobdiff_plain;f=tests%2Ftest_config.py;fp=tests%2Ftest_config.py;h=99a89f8964918784a7abdbc4735d50f6605391a1;hb=69c5f0029e140e4471f38e8cae5d07b649263a08;hp=0000000000000000000000000000000000000000;hpb=8db1b3b8b368ef83ed6ac5390127e09c786a6d5b;p=mpd-sima.git diff --git a/tests/test_config.py b/tests/test_config.py new file mode 100644 index 0000000..99a89f8 --- /dev/null +++ b/tests/test_config.py @@ -0,0 +1,48 @@ +#!/usr/bin/env python3 +# coding: utf-8 + +import unittest +import os + +from unittest.mock import patch + +from sima.utils.config import ConfMan, DIRNAME, CONF_FILE +# import set_logger to set TRACE_LEVEL_NUM +from sima.lib.logger import set_logger + + +class TestConfMan(unittest.TestCase): + + @patch('sima.utils.config.makedirs') + @patch('sima.utils.config.chmod') + def test_XDG_var(self, mock_makedirs, mock_chmod): + config_home = '/foo/bar' + os.environ['XDG_CONFIG_HOME'] = config_home + conf_file = os.path.join(config_home, DIRNAME, CONF_FILE) + conf = ConfMan({}) + self.assertEqual(conf.conf_file, conf_file) + data_home = '/bar/foo' + os.environ['XDG_DATA_HOME'] = data_home + var_dir = os.path.join(data_home, DIRNAME) + conf = ConfMan({}) + self.assertEqual(conf.config['sima']['var_dir'], var_dir) + + @patch('sima.utils.config.isdir') + def test_default_locations(self, mock_isdir): + home = '/foo' + mock_isdir.return_value = True + os.environ.pop('XDG_CONFIG_HOME', None) + os.environ.pop('XDG_DATA_HOME', None) + os.environ['HOME'] = home + conf = ConfMan({}) + # Test var dir construction + constructed_var_dir = conf.config['sima']['var_dir'] + expected_var_dir = os.path.join(home, '.local', 'share', DIRNAME) + self.assertEqual(constructed_var_dir, expected_var_dir) + # Test config construction + constructed_config_location = conf.conf_file + expected_config = os.path.join(home, '.config', DIRNAME, CONF_FILE) + self.assertEqual(constructed_config_location, expected_config) + +# VIM MODLINE +# vim: ai ts=4 sw=4 sts=4 expandtab fileencoding=utf8