Merge pull request #823 from izn/chore/add-dunst-tests

Create dunst tests
This commit is contained in:
tobi-wan-kenobi 2021-10-12 03:22:32 +02:00 committed by GitHub
commit d67232d8cf
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 74 additions and 3 deletions

View file

@ -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):

View file

@ -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']

View file

@ -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"))