diff --git a/pytests/core/test_config.py b/pytests/core/test_config.py new file mode 100644 index 0000000..7101efc --- /dev/null +++ b/pytests/core/test_config.py @@ -0,0 +1,103 @@ + +import os +import pytest + +import core.config + +@pytest.fixture +def defaultConfig(): + return core.config.Config([]) + +def test_module(): + modules = ["module-1", "module-2", "module-3"] + + cfg = core.config.Config(["-m"] + modules) + + assert cfg.modules() == modules + +def test_module_ordering_maintained(): + modules = ["module-1", "module-5", "module-7"] + more_modules = ["module-0", "module-2", "aaa"] + + cfg = core.config.Config(["-m"] + modules + ["-m"] + more_modules) + + assert cfg.modules() == modules + more_modules + +def test_default_interval(defaultConfig): + assert defaultConfig.interval() == 1 + +def test_interval(): + interval = 4 + cfg = core.config.Config(["-p", "interval={}".format(interval)]) + + assert cfg.interval() == interval + +def test_floating_interval(): + interval = 4.5 + cfg = core.config.Config(["-p", "interval={}".format(interval)]) + + assert cfg.interval() == interval + +def test_default_theme(defaultConfig): + assert defaultConfig.theme() == "default" + +def test_theme(): + theme_name = "sample-theme" + cfg = core.config.Config(["-t", theme_name]) + assert cfg.theme() == theme_name + +def test_default_iconset(defaultConfig): + assert defaultConfig.iconset() == "auto" + +def test_iconset(): + iconset_name = "random-iconset" + cfg = core.config.Config(["-i", iconset_name]) + assert cfg.iconset() == iconset_name + +def test_reverse(defaultConfig): + assert defaultConfig.reverse() == False + + cfg = core.config.Config(["-r"]) + + assert cfg.reverse() == True + +def test_logfile(defaultConfig): + assert defaultConfig.logfile() is None + + logfile = "some-random-logfile" + cfg = core.config.Config(["-f", logfile]) + assert cfg.logfile() == logfile + + + +def test_all_modules(): + modules = core.config.all_modules() + assert 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__)), + "..", + "..", + "bumblebee_status", + "modules", + ) + ) + assert os.path.exists(os.path.join(base, "contrib", pyname)) \ + or os.path.exists(os.path.join(base, "core", pyname)) + +#def test_list_output(mocker): +# mocker.patch("core.config.sys") +# cfg = core.config.Config(["-l", "themes"]) +# cfg = core.config.Config(["-l", "modules"]) +# cfg = core.config.Config(["-l", "modules-rst"]) + +def test_missing_parameter(): + cfg = core.config.Config(["-p", "test.key"]) + + assert cfg.get("test.key") == None + assert cfg.get("test.key", "no-value-set") == "no-value-set" +# +# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4