[tests] Add specific tests for CPU module

* Check that the left mouse button action works
* Check that the format is OK

see #23
This commit is contained in:
Tobi-wan Kenobi 2016-12-09 22:28:04 +01:00
parent e72c25b0bc
commit 9ce7739efb
3 changed files with 74 additions and 30 deletions

37
tests/modules/test_cpu.py Normal file
View file

@ -0,0 +1,37 @@
# pylint: disable=C0103,C0111
import json
import unittest
import mock
import bumblebee.input
from bumblebee.input import I3BarInput
from bumblebee.modules.cpu import Module
from tests.util import MockEngine, assertPopen
class TestCPUModule(unittest.TestCase):
def setUp(self):
self.engine = MockEngine()
self.engine.input = I3BarInput()
self.engine.input.need_event = True
self.module = Module(engine=self.engine, config={})
@mock.patch("sys.stdout")
def test_format(self, mock_output):
for widget in self.module.widgets():
self.assertEquals(len(widget.full_text()), len("00.00%"))
@mock.patch("subprocess.Popen")
@mock.patch("sys.stdin")
def test_leftclick(self, mock_input, mock_output):
mock_input.readline.return_value = json.dumps({
"name": self.module.id,
"button": bumblebee.input.LEFT_MOUSE,
"instance": None
})
self.engine.input.start()
self.engine.input.stop()
mock_input.readline.assert_any_call()
assertPopen(mock_output, "gnome-system-monitor")
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4