bumblebee-status/tests/core/test_module.py
Tobias Witek 6adc497f68 [core] Add support for module parameters
Parse '-p' parameters and make them accessible via 'parameter()' from
within a module (basically, restore the previous configuration
facility).

Still TODO: Add support for configuration files.
2020-02-04 21:09:11 +01:00

61 lines
2.4 KiB
Python

import unittest
import shlex
import core.module
import core.widget
import core.config
class TestModule(core.module.Module):
pass
class module(unittest.TestCase):
def setUp(self):
self.invalidModuleName = 'invalid-module-name'
self.validModuleName = 'test'
self.someWidget = core.widget.Widget('randomeWidgetContent')
self.anotherWidget = core.widget.Widget('more Widget content')
def test_loadinvalid_module(self):
module = core.module.load(module_name=self.invalidModuleName)
self.assertEqual('core.module', module.__class__.__module__, 'module must be a module object')
self.assertEqual('Error', module.__class__.__name__, 'an invalid module must be a core.module.Error')
def test_loadvalid_module(self):
module = core.module.load(module_name=self.validModuleName)
self.assertEqual('modules.{}'.format(self.validModuleName), module.__class__.__module__, 'module must be a modules.<name> object')
self.assertEqual('Module', module.__class__.__name__, 'a valid module must have a Module class')
def test_empty_widgets(self):
module = core.module.Module(widgets=[])
self.assertEqual([], module.widgets())
def test_single_widget(self):
module = core.module.Module(widgets=self.someWidget)
self.assertEqual([self.someWidget], module.widgets())
def test_widget_list(self):
module = core.module.Module(widgets=[ self.someWidget, self.anotherWidget ])
self.assertEqual([ self.someWidget, self.anotherWidget ], module.widgets())
def test_module_Name(self):
module = TestModule()
self.assertEqual('test_module', module.name(), 'module has wrong name')
self.assertEqual('test_module', module.module_name(), 'module has wrong name')
def testvalid_parameter(self):
cfg = core.config.Config(shlex.split('-p test_module.foo=5'))
module = TestModule(config=cfg)
self.assertEqual(5, int(module.parameter('foo')))
def test_default_parameter(self):
cfg = core.config.Config([])
module = TestModule(config=cfg)
self.assertEqual('default', module.parameter('foo', 'default'))
def test_default_is_none(self):
cfg = core.config.Config([])
module = TestModule(config=cfg)
self.assertEqual(None, module.parameter('foo'))
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4