[core/config] Add module aliases

Allow the user to provide aliases when loading a module multiple times
so that the modules can be differentiated (e.g. for passing parameters
to a module).

see #23
This commit is contained in:
Tobi-wan Kenobi 2016-12-03 20:54:57 +01:00
parent a720baf407
commit 9a5a6d354a
3 changed files with 22 additions and 3 deletions

View file

@ -8,7 +8,10 @@ class Config(object):
self._args = parser.parse_args(args)
def modules(self):
return list(map(lambda x: { "name": x, "module": x }, self._args.modules))
return list(map(lambda x: {
"module": x.split(":")[0],
"name": x if not ":" in x else x.split(":")[1]
}, self._args.modules))
def _create_parser(self):
parser = argparse.ArgumentParser(description="display system data in the i3bar")

View file

@ -1,5 +1,11 @@
#!/bin/sh
test=$(which nosetests)
echo "testing $(python2 -V 2>&1)"
python2 $test --rednose -v tests/
echo
echo "testing $(python3 -V 2>&1)"
python3 $test --rednose -v tests/

View file

@ -6,13 +6,23 @@ class TestConfig(unittest.TestCase):
def setUp(self):
self.defaultConfig = Config()
self.someSimpleModules = [ "foo", "bar", "baz" ]
self.someAliasModules = [ "foo:a", "bar:b", "baz:c" ]
def test_no_modules_by_default(self):
self.assertEquals(self.defaultConfig.modules(), [])
def test_load_simple_modules(self):
cfg = Config([ "-m" ] + self.someSimpleModules)
self.assertEquals(cfg.modules(),
list(map(lambda x: { "name": x, "module": x }, self.someSimpleModules)))
self.assertEquals(cfg.modules(), list(map(lambda x: {
"name": x, "module": x
}, self.someSimpleModules)))
def test_load_alias_modules(self):
cfg = Config([ "-m" ] + self.someAliasModules)
self.assertEquals(cfg.modules(), list(map(lambda x: {
"module": x.split(":")[0],
"name": x.split(":")[1]
}, self.someAliasModules)))
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4