Merge pull request #823 from izn/chore/add-dunst-tests
Create dunst tests
This commit is contained in:
commit
d67232d8cf
3 changed files with 74 additions and 3 deletions
|
@ -24,12 +24,12 @@ import util.cli
|
|||
class Module(core.module.Module):
|
||||
def __init__(self, config, theme):
|
||||
super().__init__(config, theme, core.widget.Widget(""))
|
||||
core.input.register(self, button=core.input.LEFT_MOUSE, cmd=self.__toggle_state)
|
||||
core.input.register(self, button=core.input.LEFT_MOUSE, cmd=self.toggle_state)
|
||||
self.__states = {"unknown": ["unknown", "critical"],
|
||||
"true": ["muted", "warning"],
|
||||
"false": ["unmuted"]}
|
||||
|
||||
def __toggle_state(self, event):
|
||||
def toggle_state(self, event):
|
||||
util.cli.execute("dunstctl set-paused toggle", ignore_errors=True)
|
||||
|
||||
def state(self, widget):
|
||||
|
|
|
@ -1,5 +1,58 @@
|
|||
import pytest
|
||||
|
||||
import core.config
|
||||
import modules.contrib.dunst
|
||||
|
||||
|
||||
def build_module():
|
||||
return modules.contrib.dunst.Module(
|
||||
config=core.config.Config([]),
|
||||
theme=None
|
||||
)
|
||||
|
||||
|
||||
def test_load_module():
|
||||
__import__("modules.contrib.dunst")
|
||||
|
||||
def test_input_registration(mocker):
|
||||
input_register = mocker.patch('core.input.register')
|
||||
|
||||
module = build_module()
|
||||
|
||||
input_register.assert_called_with(
|
||||
module,
|
||||
button=core.input.LEFT_MOUSE,
|
||||
cmd=module.toggle_status
|
||||
)
|
||||
|
||||
def test_dunst_toggle(mocker):
|
||||
start_command = mocker.patch('util.cli.execute')
|
||||
|
||||
module = build_module()
|
||||
start_command.assert_called_with('killall -s SIGUSR2 dunst', ignore_errors=True)
|
||||
|
||||
toggle_command = mocker.patch('util.cli.execute')
|
||||
module.toggle_status(None)
|
||||
toggle_command.assert_called_with('killall -s SIGUSR1 dunst')
|
||||
|
||||
widget = module.widget()
|
||||
actual = module.state(widget)
|
||||
assert actual == ['muted', 'warning']
|
||||
|
||||
module.toggle_status(None)
|
||||
toggle_command.assert_called_with('killall -s SIGUSR2 dunst')
|
||||
|
||||
widget = module.widget()
|
||||
actual = module.state(widget)
|
||||
assert actual == ['unmuted']
|
||||
|
||||
def test_dunst_toggle_exception(mocker):
|
||||
module = build_module()
|
||||
|
||||
toggle_command = mocker.patch('util.cli.execute', side_effect=Exception)
|
||||
module.toggle_status(None)
|
||||
toggle_command.assert_called_with('killall -s SIGUSR1 dunst')
|
||||
|
||||
widget = module.widget()
|
||||
actual = module.state(widget)
|
||||
assert actual == ['unmuted']
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
import pytest
|
||||
|
||||
import util.cli
|
||||
import core.config
|
||||
import modules.contrib.dunstctl
|
||||
|
||||
|
@ -13,6 +12,25 @@ def build_module():
|
|||
def test_load_module():
|
||||
__import__("modules.contrib.dunstctl")
|
||||
|
||||
def test_input_registration(mocker):
|
||||
input_register = mocker.patch('core.input.register')
|
||||
|
||||
module = build_module()
|
||||
|
||||
input_register.assert_called_with(
|
||||
module,
|
||||
button=core.input.LEFT_MOUSE,
|
||||
cmd=module.toggle_state
|
||||
)
|
||||
|
||||
def test_dunst_toggle_state(mocker):
|
||||
command = mocker.patch('util.cli.execute')
|
||||
|
||||
module = build_module()
|
||||
|
||||
module.toggle_state(None)
|
||||
command.assert_called_with('dunstctl set-paused toggle', ignore_errors=True)
|
||||
|
||||
def test_dunst_running(mocker):
|
||||
command = mocker.patch('util.cli.execute', return_value=(0, "false"))
|
||||
|
||||
|
|
Loading…
Reference in a new issue