[tests] switch to pytest
This commit is contained in:
parent
b2e92d816d
commit
39fa7788b4
37 changed files with 1009 additions and 2259 deletions
|
@ -1,90 +1,104 @@
|
|||
import unittest
|
||||
import pytest
|
||||
|
||||
import core.input
|
||||
|
||||
|
||||
class config(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.inputObject = core.input.Object()
|
||||
self.anotherObject = core.input.Object()
|
||||
self.someEvent = {
|
||||
"button": core.input.LEFT_MOUSE,
|
||||
"instance": self.inputObject.id,
|
||||
}
|
||||
self.anotherEvent = {
|
||||
"button": core.input.RIGHT_MOUSE,
|
||||
"instance": self.inputObject.id,
|
||||
}
|
||||
self.callback = unittest.mock.MagicMock()
|
||||
self.callback2 = unittest.mock.MagicMock()
|
||||
self.someCommand = "some sample command"
|
||||
@pytest.fixture
|
||||
def obj():
|
||||
return core.input.Object()
|
||||
|
||||
def test_callable_gets_called(self):
|
||||
core.input.register(self.inputObject, self.someEvent["button"], self.callback)
|
||||
core.input.trigger(self.someEvent)
|
||||
self.callback.assert_called_once_with(self.someEvent)
|
||||
|
||||
def test_nonexistent_callback(self):
|
||||
core.input.register(self.inputObject, self.someEvent["button"], self.callback)
|
||||
core.input.trigger(self.anotherEvent)
|
||||
self.callback.assert_not_called()
|
||||
@pytest.fixture
|
||||
def obj2():
|
||||
return core.input.Object()
|
||||
|
||||
def test_different_events(self):
|
||||
core.input.register(self.inputObject, self.someEvent["button"], self.callback)
|
||||
core.input.register(
|
||||
self.inputObject, self.anotherEvent["button"], self.callback
|
||||
)
|
||||
core.input.register(
|
||||
self.anotherObject, self.someEvent["button"], self.callback2
|
||||
)
|
||||
core.input.register(
|
||||
self.anotherObject, self.anotherEvent["button"], self.callback2
|
||||
)
|
||||
core.input.trigger(self.someEvent)
|
||||
core.input.trigger(self.anotherEvent)
|
||||
self.callback.assert_any_call(self.someEvent)
|
||||
self.callback.assert_any_call(self.anotherEvent)
|
||||
self.callback2.assert_not_called()
|
||||
|
||||
def test_multiple_registrations(self):
|
||||
core.input.register(self.inputObject, self.someEvent["button"], self.callback)
|
||||
core.input.register(self.inputObject, self.someEvent["button"], self.callback2)
|
||||
core.input.trigger(self.someEvent)
|
||||
self.callback.assert_called_once_with(self.someEvent)
|
||||
self.callback2.assert_called_once_with(self.someEvent)
|
||||
@pytest.fixture
|
||||
def cb(mocker):
|
||||
return mocker.MagicMock()
|
||||
|
||||
def test_event_names(self):
|
||||
self.assertEqual(core.input.button_name(core.input.LEFT_MOUSE), "left-mouse")
|
||||
self.assertEqual(core.input.button_name(core.input.RIGHT_MOUSE), "right-mouse")
|
||||
self.assertEqual(
|
||||
core.input.button_name(core.input.MIDDLE_MOUSE), "middle-mouse"
|
||||
)
|
||||
self.assertEqual(core.input.button_name(core.input.WHEEL_UP), "wheel-up")
|
||||
self.assertEqual(core.input.button_name(core.input.WHEEL_DOWN), "wheel-down")
|
||||
self.assertEqual(core.input.button_name(12345), "n/a")
|
||||
|
||||
def test_non_callable_callback(self):
|
||||
with unittest.mock.patch("core.input.util.cli") as cli:
|
||||
cli.execute.return_value = ""
|
||||
core.input.register(
|
||||
self.inputObject, self.someEvent["button"], self.someCommand
|
||||
)
|
||||
core.input.trigger(self.someEvent)
|
||||
cli.execute.assert_called_once_with(
|
||||
self.someCommand, wait=False, shell=True
|
||||
)
|
||||
@pytest.fixture
|
||||
def cb2(mocker):
|
||||
return mocker.MagicMock()
|
||||
|
||||
def test_non_existent_callback(self):
|
||||
with unittest.mock.patch("core.input.util.cli") as cli:
|
||||
cli.execute.return_value = ""
|
||||
cli.execute.side_effect = RuntimeError("some-error")
|
||||
core.input.register(
|
||||
self.inputObject, self.someEvent["button"], self.someCommand
|
||||
)
|
||||
try:
|
||||
core.input.trigger(self.someEvent)
|
||||
except Exception:
|
||||
self.fail("input module propagated exception")
|
||||
|
||||
def event(input_object):
|
||||
return {"button": core.input.LEFT_MOUSE, "instance": input_object.id}
|
||||
|
||||
|
||||
def event2(input_object):
|
||||
return {"button": core.input.RIGHT_MOUSE, "instance": input_object.id}
|
||||
|
||||
|
||||
def test_callable_gets_called(obj, cb):
|
||||
core.input.register(obj, event(obj)["button"], cb)
|
||||
core.input.trigger(event(obj))
|
||||
|
||||
cb.assert_called_once_with(event(obj))
|
||||
|
||||
|
||||
def test_nonexistent_callback(obj, obj2, cb):
|
||||
core.input.register(obj, event(obj)["button"], cb)
|
||||
core.input.trigger(event(obj2))
|
||||
|
||||
cb.assert_not_called()
|
||||
|
||||
|
||||
def test_different_events(obj, obj2, cb, cb2):
|
||||
core.input.register(obj, event(obj)["button"], cb)
|
||||
core.input.register(obj, event2(obj)["button"], cb)
|
||||
core.input.register(obj2, event(obj)["button"], cb2)
|
||||
core.input.register(obj2, event2(obj)["button"], cb2)
|
||||
|
||||
core.input.trigger(event(obj))
|
||||
core.input.trigger(event2(obj))
|
||||
|
||||
cb.assert_any_call(event(obj))
|
||||
cb.assert_any_call(event2(obj))
|
||||
cb2.assert_not_called()
|
||||
|
||||
|
||||
def test_multiple_registrations(obj, cb, cb2):
|
||||
core.input.register(obj, event(obj)["button"], cb)
|
||||
core.input.register(obj, event(obj)["button"], cb2)
|
||||
|
||||
core.input.trigger(event(obj))
|
||||
|
||||
cb.assert_called_once_with(event(obj))
|
||||
cb2.assert_called_once_with(event(obj))
|
||||
|
||||
|
||||
def test_event_names():
|
||||
assert core.input.button_name(core.input.LEFT_MOUSE) == "left-mouse"
|
||||
assert core.input.button_name(core.input.RIGHT_MOUSE) == "right-mouse"
|
||||
assert core.input.button_name(core.input.MIDDLE_MOUSE) == "middle-mouse"
|
||||
assert core.input.button_name(core.input.WHEEL_UP) == "wheel-up"
|
||||
assert core.input.button_name(core.input.WHEEL_DOWN) == "wheel-down"
|
||||
assert core.input.button_name(12345) == "n/a"
|
||||
|
||||
|
||||
def test_non_callable_callback(mocker, obj):
|
||||
cli = mocker.patch("core.input.util.cli")
|
||||
cli.execute.return_value = ""
|
||||
|
||||
core.input.register(obj, event(obj)["button"], "sample-command")
|
||||
|
||||
core.input.trigger(event(obj))
|
||||
|
||||
cli.execute.assert_called_once_with("sample-command", wait=False, shell=True)
|
||||
|
||||
|
||||
def test_non_existent_callback(mocker, obj):
|
||||
cli = mocker.patch("core.input.util.cli")
|
||||
cli.execute.return_value = ""
|
||||
cli.execute.side_effect = RuntimeError("some-error")
|
||||
|
||||
core.input.register(obj, event(obj)["button"], "sample-command")
|
||||
|
||||
core.input.trigger(event(obj))
|
||||
|
||||
cli.execute.assert_called_once_with("sample-command", wait=False, shell=True)
|
||||
|
||||
|
||||
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue