[core/module] Add error widgets if a module throws

Module should have to care less about thrown exceptions.
This commit is contained in:
Tobias Witek 2020-03-01 14:08:16 +01:00
parent cb3482ae27
commit a1aec8fff6
7 changed files with 36 additions and 4 deletions

View file

@ -26,11 +26,20 @@ class module(unittest.TestCase):
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')
self.assertEqual([], module.state(None), 'default state of module is empty')
def test_empty_widgets(self):
module = core.module.Module(widgets=[])
self.assertEqual([], module.widgets())
def test_error_widget(self):
cfg = core.config.Config(shlex.split('-p test_module.foo=5'))
module = core.module.Error(cfg, 'test-mod', 'xyz')
self.assertEqual(['critical'], module.state(None), 'error module must have critical state')
full_text = module.full_text(module.widgets()[0])
self.assertTrue('test-mod' in full_text)
self.assertTrue('xyz' in full_text)
def test_single_widget(self):
module = core.module.Module(widgets=self.someWidget)
self.assertEqual([self.someWidget], module.widgets())