[tests] add more core/config tests

This commit is contained in:
tobi-wan-kenobi 2020-05-02 14:09:30 +02:00
parent b3d70c61f1
commit 5ee97dbb09

View file

@ -1,3 +1,4 @@
import os
import unittest import unittest
import core.config import core.config
@ -8,6 +9,7 @@ class config(unittest.TestCase):
self.moreModules = [ 'this', 'module', 'here' ] self.moreModules = [ 'this', 'module', 'here' ]
self.someTheme = 'some-theme' self.someTheme = 'some-theme'
self.someIconset = 'some-iconset' self.someIconset = 'some-iconset'
self.defaultConfig = core.config.Config([])
def test_module(self): def test_module(self):
cfg = core.config.Config([ '-m' ] + self.someModules) cfg = core.config.Config([ '-m' ] + self.someModules)
@ -18,8 +20,7 @@ class config(unittest.TestCase):
self.assertEqual(self.someModules + self.moreModules, cfg.modules()) self.assertEqual(self.someModules + self.moreModules, cfg.modules())
def test_default_interval(self): def test_default_interval(self):
cfg = core.config.Config([]) self.assertEqual(1, self.defaultConfig.interval())
self.assertEqual(1, cfg.interval())
def test_interval(self): def test_interval(self):
cfg = core.config.Config([ '-p', 'interval=4']) cfg = core.config.Config([ '-p', 'interval=4'])
@ -30,19 +31,46 @@ class config(unittest.TestCase):
self.assertEqual(0.5, cfg.interval()) self.assertEqual(0.5, cfg.interval())
def test_default_theme(self): def test_default_theme(self):
cfg = core.config.Config([]) self.assertEqual('default', self.defaultConfig.theme())
self.assertEqual('default', cfg.theme())
def test_theme(self): def test_theme(self):
cfg = core.config.Config(['-t', self.someTheme]) cfg = core.config.Config(['-t', self.someTheme])
self.assertEqual(self.someTheme, cfg.theme()) self.assertEqual(self.someTheme, cfg.theme())
def test_default_iconset(self): def test_default_iconset(self):
cfg = core.config.Config([]) self.assertEqual('auto', self.defaultConfig.iconset())
self.assertEqual('auto', cfg.iconset())
def test_iconset(self): def test_iconset(self):
cfg = core.config.Config(['-i', self.someIconset]) cfg = core.config.Config(['-i', self.someIconset])
self.assertEqual(self.someIconset, cfg.iconset()) self.assertEqual(self.someIconset, cfg.iconset())
def test_right_to_left(self):
cfg = core.config.Config(['-r'])
self.assertTrue(cfg.reverse())
self.assertFalse(self.defaultConfig.reverse())
def test_logfile(self):
cfg = core.config.Config(['-f', 'my-custom-logfile'])
self.assertEquals(None, self.defaultConfig.logfile())
self.assertEquals('my-custom-logfile', cfg.logfile())
def test_all_modules(self):
modules = core.config.all_modules()
self.assertGreater(len(modules), 0)
for module in modules:
pyname = '{}.py'.format(module)
base = os.path.abspath(os.path.join(os.path.dirname(os.path.realpath(__file__)), '..', '..', 'modules'))
self.assertTrue(os.path.exists(os.path.join(base, 'contrib', pyname)) or os.path.exists(os.path.join(base, 'core', pyname)))
def test_list_output(self):
with unittest.mock.patch('core.config.sys') as sys:
cfg = core.config.Config([ '-l', 'themes' ])
cfg = core.config.Config([ '-l', 'modules' ])
cfg = core.config.Config([ '-l', 'modules-markdown' ])
# TODO: think of some plausibility testing here
def test_missing_parameter(self):
cfg = core.config.Config([ '-p', 'test.key' ])
self.assertEqual('no-value-set', cfg.get('test.key', 'no-value-set'))
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4 # vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4