Fix bug that prevented module errors being displayed in bar (#586)
* Fix bug that prevented errors being shown in bar. * Add tests to ensure errors are visible in the bar.
This commit is contained in:
parent
4ec39cacb0
commit
1db757a2e2
@ -62,8 +62,8 @@ class Module(SettingsBase):
|
|||||||
hints = {"markup": "none"}
|
hints = {"markup": "none"}
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super(Module, self).__init__(*args, **kwargs)
|
|
||||||
self._output = None
|
self._output = None
|
||||||
|
super(Module, self).__init__(*args, **kwargs)
|
||||||
self.__multi_click = MultiClickHandler(self.__button_callback_handler,
|
self.__multi_click = MultiClickHandler(self.__button_callback_handler,
|
||||||
self.multi_click_timeout)
|
self.multi_click_timeout)
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@ import time
|
|||||||
from unittest.mock import MagicMock
|
from unittest.mock import MagicMock
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
from i3pystatus import IntervalModule
|
from i3pystatus import IntervalModule, Status
|
||||||
from i3pystatus.core.exceptions import ConfigMissingError
|
from i3pystatus.core.exceptions import ConfigMissingError
|
||||||
from i3pystatus.core.modules import is_method_of, Module
|
from i3pystatus.core.modules import is_method_of, Module
|
||||||
|
|
||||||
@ -162,6 +162,24 @@ def test_required_raises():
|
|||||||
TestRequired(some_setting='foo')
|
TestRequired(some_setting='foo')
|
||||||
|
|
||||||
|
|
||||||
|
def test_invalid_module_kwarg_shows_error():
|
||||||
|
""" Ensure that when an invalid module kwarg is passed an error is shown in the bar. """
|
||||||
|
status = Status(standalone=False)
|
||||||
|
status.register("text", foo='bar')
|
||||||
|
assert len(status.modules) > 0
|
||||||
|
assert status.modules[0].output is not None
|
||||||
|
assert "ConfigKeyError" in status.modules[0].output['full_text']
|
||||||
|
|
||||||
|
|
||||||
|
def test_missing_required_shows_error():
|
||||||
|
""" Ensure that when an a required module parameter is missing an error is shown in the bar. """
|
||||||
|
status = Status(standalone=False)
|
||||||
|
status.register("text")
|
||||||
|
assert len(status.modules) > 0
|
||||||
|
assert status.modules[0].output is not None
|
||||||
|
assert "ConfigMissingError" in status.modules[0].output['full_text']
|
||||||
|
|
||||||
|
|
||||||
def test_required_defined_raises():
|
def test_required_defined_raises():
|
||||||
""" Ensure defined but unmodified required settings raise a ConfigMissingError """
|
""" Ensure defined but unmodified required settings raise a ConfigMissingError """
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user