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):
|
class Module(core.module.Module):
|
||||||
def __init__(self, config, theme):
|
def __init__(self, config, theme):
|
||||||
super().__init__(config, theme, core.widget.Widget(""))
|
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"],
|
self.__states = {"unknown": ["unknown", "critical"],
|
||||||
"true": ["muted", "warning"],
|
"true": ["muted", "warning"],
|
||||||
"false": ["unmuted"]}
|
"false": ["unmuted"]}
|
||||||
|
|
||||||
def __toggle_state(self, event):
|
def toggle_state(self, event):
|
||||||
util.cli.execute("dunstctl set-paused toggle", ignore_errors=True)
|
util.cli.execute("dunstctl set-paused toggle", ignore_errors=True)
|
||||||
|
|
||||||
def state(self, widget):
|
def state(self, widget):
|
||||||
|
|
|
@ -1,5 +1,58 @@
|
||||||
import pytest
|
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():
|
def test_load_module():
|
||||||
__import__("modules.contrib.dunst")
|
__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 pytest
|
||||||
|
|
||||||
import util.cli
|
|
||||||
import core.config
|
import core.config
|
||||||
import modules.contrib.dunstctl
|
import modules.contrib.dunstctl
|
||||||
|
|
||||||
|
@ -13,6 +12,25 @@ def build_module():
|
||||||
def test_load_module():
|
def test_load_module():
|
||||||
__import__("modules.contrib.dunstctl")
|
__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):
|
def test_dunst_running(mocker):
|
||||||
command = mocker.patch('util.cli.execute', return_value=(0, "false"))
|
command = mocker.patch('util.cli.execute', return_value=(0, "false"))
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue