89 lines
3.7 KiB
Python
89 lines
3.7 KiB
Python
# pylint: disable=C0103,C0111,W0703
|
|
|
|
import unittest
|
|
|
|
from bumblebee.engine import Module
|
|
from bumblebee.config import Config
|
|
from tests.mocks import MockWidget
|
|
|
|
class TestModule(unittest.TestCase):
|
|
def setUp(self):
|
|
self.widgetName = "foo"
|
|
self.widget = MockWidget(self.widgetName)
|
|
self.config = Config()
|
|
self.anyWidgetName = "random-widget-name"
|
|
self.noSuchModule = "this-module-does-not-exist"
|
|
self.moduleWithoutWidgets = Module(engine=None, widgets=None)
|
|
self.moduleWithOneWidget = Module(engine=None, widgets=self.widget, config={"config": self.config})
|
|
self.moduleWithMultipleWidgets = Module(engine=None,
|
|
widgets=[self.widget, self.widget, self.widget]
|
|
)
|
|
|
|
self.anyConfigName = "cfg"
|
|
self.anotherConfigName = "cfg2"
|
|
self.anyModule = Module(engine=None, widgets=self.widget, config={
|
|
"name": self.anyConfigName, "config": self.config
|
|
})
|
|
self.anotherModule = Module(engine=None, widgets=self.widget, config={
|
|
"name": self.anotherConfigName, "config": self.config
|
|
})
|
|
self.anyKey = "some-parameter"
|
|
self.anyValue = "value"
|
|
self.anotherValue = "another-value"
|
|
self.emptyKey = "i-do-not-exist"
|
|
self.config.set("{}.{}".format(self.anyConfigName, self.anyKey), self.anyValue)
|
|
self.config.set("{}.{}".format(self.anotherConfigName, self.anyKey), self.anotherValue)
|
|
|
|
def test_empty_widgets(self):
|
|
self.assertEquals(self.moduleWithoutWidgets.widgets(), [])
|
|
|
|
def test_single_widget(self):
|
|
self.assertEquals(self.moduleWithOneWidget.widgets(), [self.widget])
|
|
|
|
def test_multiple_widgets(self):
|
|
for widget in self.moduleWithMultipleWidgets.widgets():
|
|
self.assertEquals(widget, self.widget)
|
|
|
|
def test_retrieve_widget_by_name(self):
|
|
widget = MockWidget(self.anyWidgetName)
|
|
widget.name = self.anyWidgetName
|
|
module = Module(engine=None, widgets=[self.widget, widget, self.widget])
|
|
retrievedWidget = module.widget(self.anyWidgetName)
|
|
self.assertEquals(retrievedWidget, widget)
|
|
|
|
def test_retrieve_widget_by_id(self):
|
|
widget = MockWidget(self.anyWidgetName)
|
|
widget.id = self.anyWidgetName
|
|
module = Module(engine=None, widgets=[self.widget, widget, self.widget])
|
|
retrievedWidget = module.widget_by_id(self.anyWidgetName)
|
|
self.assertEquals(retrievedWidget, widget)
|
|
|
|
def test_retrieve_missing_widget(self):
|
|
module = self.moduleWithMultipleWidgets
|
|
|
|
widget = module.widget(self.noSuchModule)
|
|
self.assertEquals(widget, None)
|
|
|
|
widget = module.widget_by_id(self.noSuchModule)
|
|
self.assertEquals(widget, None)
|
|
|
|
def test_threshold(self):
|
|
module = self.moduleWithOneWidget
|
|
module.name = self.widgetName
|
|
|
|
self.config.set("{}.critical".format(self.widgetName), 10.0)
|
|
self.config.set("{}.warning".format(self.widgetName), 8.0)
|
|
self.assertEquals("critical", module.threshold_state(10.1, 0, 0))
|
|
self.assertEquals("warning", module.threshold_state(10.0, 0, 0))
|
|
self.assertEquals(None, module.threshold_state(8.0, 0, 0))
|
|
self.assertEquals(None, module.threshold_state(7.9, 0, 0))
|
|
|
|
def test_parameters(self):
|
|
self.assertEquals(self.anyModule.parameter(self.anyKey), self.anyValue)
|
|
self.assertEquals(self.anotherModule.parameter(self.anyKey), self.anotherValue)
|
|
|
|
def test_default_parameters(self):
|
|
self.assertEquals(self.anyModule.parameter(self.emptyKey), None)
|
|
self.assertEquals(self.anyModule.parameter(self.emptyKey, self.anyValue), self.anyValue)
|
|
|
|
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
|