mirror of
https://github.com/cheat/cheat.git
synced 2024-11-16 08:58:28 +01:00
3a4c2a887d
- tests prove descending hiearchy of config system - env vars, local config file, global config file
86 lines
2.9 KiB
Python
86 lines
2.9 KiB
Python
import unittest2
|
|
import os
|
|
import shutil
|
|
from cheat.configuration import Configuration
|
|
|
|
|
|
def _set_loc_conf(key, value):
|
|
_path = os.path.dirname(os.path.abspath(__file__)) + '/home/.config/cheat/cheat'
|
|
if value == None:
|
|
os.remove(_path)
|
|
else:
|
|
if not os.path.exists(os.path.dirname(_path)):
|
|
os.makedirs(os.path.dirname(_path))
|
|
f = open(_path,"w+")
|
|
f.write('{"'+ key +'":"'+ value +'"}')
|
|
f.close()
|
|
|
|
|
|
def _set_glob_conf(key, value):
|
|
_path = os.path.dirname(os.path.abspath(__file__))+ "/etc/cheat"
|
|
if value == None:
|
|
os.remove(_path)
|
|
else:
|
|
if not os.path.exists(os.path.dirname(_path)):
|
|
os.mkdir(os.path.dirname(_path))
|
|
f = open(_path,"w+")
|
|
f.write('{"'+ key +'":"'+ value +'"}' )
|
|
f.close()
|
|
|
|
|
|
def _set_env_var(key, value):
|
|
if value == None:
|
|
del os.environ[key]
|
|
else:
|
|
os.environ[key] = value
|
|
|
|
|
|
def _configuration_key_test(TestConfiguration, key,values, conf_get_method):
|
|
for glob_conf in values:
|
|
_set_glob_conf(key,glob_conf)
|
|
for loc_conf in values:
|
|
_set_loc_conf(key,loc_conf)
|
|
for env_conf in values:
|
|
_set_env_var(key,env_conf)
|
|
if env_conf:
|
|
TestConfiguration.assertEqual(conf_get_method(Configuration()),env_conf)
|
|
elif loc_conf:
|
|
TestConfiguration.assertEqual(conf_get_method(Configuration()),loc_conf)
|
|
elif glob_conf:
|
|
TestConfiguration.assertEqual(conf_get_method(Configuration()),glob_conf)
|
|
else:
|
|
TestConfiguration.assertEqual(conf_get_method(Configuration()),None)
|
|
|
|
|
|
class ConfigurationTestCase(unittest2.TestCase):
|
|
|
|
|
|
def setUp(self):
|
|
os.environ['CHEAT_GLOBAL_CONF_PATH'] = os.path.dirname(os.path.abspath(__file__)) \
|
|
+ '/etc/cheat'
|
|
os.environ['CHEAT_LOCAL_CONF_PATH'] = os.path.dirname(os.path.abspath(__file__)) \
|
|
+ '/home/.config/cheat/cheat'
|
|
|
|
|
|
def test_get_editor(self):
|
|
_configuration_key_test(self,"EDITOR",["nano","vim","gedit",None],
|
|
Configuration.get_editor)
|
|
|
|
|
|
def test_get_cheatcolors(self):
|
|
_configuration_key_test(self,"CHEATCOLORS",["true",None],
|
|
Configuration.get_cheatcolors)
|
|
|
|
|
|
def test_get_cheatpath(self):
|
|
_configuration_key_test(self,"CHEATPATH",["/etc/myglobalcheats",
|
|
"/etc/anotherglobalcheats","/rootcheats",None],Configuration.get_cheatpath)
|
|
|
|
|
|
def test_get_defaultcheatdir(self):
|
|
_configuration_key_test(self,"DEFAULT_CHEAT_DIR",["/etc/myglobalcheats",
|
|
"/etc/anotherglobalcheats","/rootcheats",None],Configuration.get_default_cheat_dir)
|
|
|
|
def tearDown(self):
|
|
shutil.rmtree(os.path.dirname(os.path.abspath(__file__)) +'/etc')
|
|
shutil.rmtree(os.path.dirname(os.path.abspath(__file__)) +'/home')
|