Пример #1
0
    def test_label(self):
        config = Config()
        config.set("http_status.label", "example")
        config.set("http_status.target", "http://example.org")
        self.module = Module(engine=mock.Mock(), config={"config":config})

        self.assertEqual(self.module.getOutput(), "example: 200")
Пример #2
0
    def test_unknow(self):
        config = Config()
        config.set("http_status.target", "invalid target")
        self.module = Module(engine=mock.Mock(), config={"config":config})

        self.assertTrue("warning" in self.module.state(self.module.widgets()[0]))
        self.assertEqual(self.module.getStatus(), "UNK")
        self.assertEqual(self.module.getOutput(), "UNK != 200")
Пример #3
0
    def test_status_success(self):
        config = Config()
        config.set("http_status.target", "http://example.org")
        self.module = Module(engine=mock.Mock(), config={"config":config})

        self.assertTrue(not "warning" in self.module.state(self.module.widgets()[0]))
        self.assertTrue(not "critical" in self.module.state(self.module.widgets()[0]))
        self.assertEqual(self.module.getStatus(), "200")
        self.assertEqual(self.module.getOutput(), "200")
Пример #4
0
class TestModule(unittest.TestCase):
    def setUp(self):
        self.widget = MockWidget("foo")
        self.config = Config()
        self.moduleWithoutWidgets = Module(engine=None, widgets=None)
        self.moduleWithOneWidget = Module(engine=None, widgets=self.widget)
        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_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)
Пример #5
0
class TestModule(unittest.TestCase):
    def setUp(self):
        self.widget = MockWidget("foo")
        self.config = Config()
        self.moduleWithoutWidgets = Module(engine=None, widgets=None)
        self.moduleWithOneWidget = Module(engine=None, widgets=self.widget)
        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_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)
Пример #6
0
class TestBatteryModule(unittest.TestCase):
    def setUp(self):
        self._stdout = mock.patch("sys.stdout", new_callable=StringIO)
        self._exists = mock.patch("bumblebee.modules.battery.os.path.exists")
        self._open = mock.patch("bumblebee.modules.battery.open", create=True)

        self.stdout = self._stdout.start()
        self.exists = self._exists.start()
        self.open = self._open.start()
        self.file = mock.Mock()
        self.file.__enter__ = lambda x: self.file
        self.file.__exit__ = lambda x, a, b, c: ""
        self.file.read.return_value = "120"
        self.open.return_value = self.file

        self.exists.return_value = True
        self.engine = mock.Mock()
        self.config = Config()
        self.config.set("battery.showremaining", "false")
        self.module = Module(engine=self.engine, config={"config":self.config})

        self.config.set("battery.critical", "20")
        self.config.set("battery.warning", "25")
        self.criticalValue = "19"
        self.warningValue = "21"
        self.normalValue = "26"
        self.chargedValue = "96"

        self.module.widgets()[0]

    def tearDown(self):
        self._stdout.stop()
        self._exists.stop()
        self._open.stop()

    def test_format(self):
        for widget in self.module.widgets():
            self.assertEquals(len(widget.full_text()), len("100%"))

    def test_critical(self):
        self.file.read.return_value = self.criticalValue
        self.module.update_all()
        self.assertTrue("critical" in self.module.state(self.module.widgets()[0]))

    def test_warning(self):
        self.file.read.return_value = self.warningValue
        self.module.update_all()
        self.assertTrue("warning" in self.module.state(self.module.widgets()[0]))

    def test_normal(self):
        self.file.read.return_value = self.normalValue
        self.module.update_all()
        self.assertTrue(not "warning" in self.module.state(self.module.widgets()[0]))
        self.assertTrue(not "critical" in self.module.state(self.module.widgets()[0]))

    def test_overload(self):
        self.file.read.return_value = "120"
        self.module.update_all()
        self.assertTrue(not "warning" in self.module.state(self.module.widgets()[0]))
        self.assertTrue(not "critical" in self.module.state(self.module.widgets()[0]))
        self.assertEquals(self.module.capacity(self.module.widgets()[0]), "100%")

    def test_ac(self):
        self.exists.return_value = False
        self.file.read.return_value = "120"
        self.module.update_all()
        self.assertEquals(self.module.capacity(self.module.widgets()[0]), "ac")
        self.assertTrue("AC" in self.module.state(self.module.widgets()[0]))

    def test_error(self):
        self.file.read.side_effect = IOError("failed to read")
        self.module.update_all()
        self.assertEquals(self.module.capacity(self.module.widgets()[0]), "n/a")
        self.assertTrue("critical" in self.module.state(self.module.widgets()[0]))
        self.assertTrue("unknown" in self.module.state(self.module.widgets()[0]))

    def test_charging(self):
        self.file.read.return_value = self.chargedValue
        self.module.update_all()
        self.assertTrue("charged" in self.module.state(self.module.widgets()[0]))
        self.file.read.return_value = self.normalValue
        self.module.update_all()
        self.assertTrue("charging" in self.module.state(self.module.widgets()[0]))
        
    def test_discharging(self):
        for limit in [ 10, 25, 50, 80, 100 ]:
            value = limit - 1
            self.file.read.return_value = str(value)
            self.module.update_all()
            self.file.read.return_value = "Discharging"
            self.assertTrue("discharging-{}".format(limit) in self.module.state(self.module.widgets()[0]))
Пример #7
0
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)
Пример #8
0
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)