[tests] switch to pytest

This commit is contained in:
Tobias Witek 2020-06-20 14:53:44 +02:00
parent b2e92d816d
commit 39fa7788b4
37 changed files with 1009 additions and 2259 deletions

View file

@ -1,62 +1,73 @@
import unittest
import pytest
import core.event
@pytest.fixture
def someEvent():
class Event():
def __init__(self):
core.event.clear()
self.id = "some event"
self.called = 0
self.call_args = []
self.call_kwargs = []
class event(unittest.TestCase):
def setUp(self):
self.someEvent = "event"
self.called = {}
self.params = []
core.event.clear()
def callback(self, *args, **kwargs):
self.called += 1
if args:
self.call_args.append(list(args))
if kwargs:
self.call_kwargs.append(kwargs)
def callback1(self):
self.called["callback1"] = True
return Event()
def callback2(self):
self.called["callback2"] = True
def callback_args(self, val1, val2):
self.called["callback_args"] = True
self.params = [val1, val2]
def test_simple_callback(someEvent):
assert someEvent.called == 0
def callback_kwargs(self, val1, val2, key1=None, key2=None):
self.called["callback_kwargs"] = True
self.params = [val1, val2, key1, key2]
core.event.register(someEvent.id, someEvent.callback)
core.event.register(someEvent.id, someEvent.callback)
def test_simple_callback(self):
core.event.register(self.someEvent, self.callback1)
core.event.register(self.someEvent, self.callback2)
core.event.trigger(someEvent.id)
core.event.trigger(self.someEvent)
assert someEvent.called == 2
self.assertEqual(2, len(self.called.keys()))
def test_args_callback(someEvent):
core.event.register(someEvent.id, someEvent.callback, "a", "b")
core.event.trigger(someEvent.id)
def test_arg_callback(self):
core.event.register(self.someEvent, self.callback_args, "a", "b")
core.event.trigger(self.someEvent)
self.assertEqual(1, len(self.called.keys()))
self.assertEqual(["a", "b"], self.params)
assert someEvent.called == 1
assert len(someEvent.call_args) == 1
assert someEvent.call_args[0] == ["a", "b"]
def test_kwargs_callback(self):
core.event.register(
self.someEvent, self.callback_kwargs, "a", "b", key1="test", key2="x"
)
core.event.trigger(self.someEvent)
self.assertEqual(1, len(self.called.keys()))
self.assertEqual(["a", "b", "test", "x"], self.params)
def test_kwargs_callback(someEvent):
core.event.register(
someEvent.id, someEvent.callback, "a", "b", key1="test", key2="another"
)
core.event.trigger(someEvent.id)
def test_arg_trigger(self):
core.event.register(self.someEvent, self.callback_args)
core.event.trigger(self.someEvent, "a", "b")
self.assertEqual(1, len(self.called.keys()))
self.assertEqual(["a", "b"], self.params)
assert someEvent.called == 1
assert len(someEvent.call_args) == 1
assert someEvent.call_args[0] == ["a", "b"]
assert len(someEvent.call_kwargs) == 1
assert someEvent.call_kwargs[0] == { "key1": "test", "key2": "another" }
def test_kwargs_trigger(self):
core.event.register(self.someEvent, self.callback_kwargs)
core.event.trigger(self.someEvent, "a", "b", key1="test", key2="x")
self.assertEqual(1, len(self.called.keys()))
self.assertEqual(["a", "b", "test", "x"], self.params)
def test_arg_trigger(someEvent):
core.event.register(someEvent.id, someEvent.callback)
core.event.trigger(someEvent.id, "a", "b")
assert someEvent.called == 1
assert len(someEvent.call_args) == 1
assert someEvent.call_args[0] == ["a", "b"]
def test_kwargs_trigger(someEvent):
core.event.register(someEvent.id, someEvent.callback)
core.event.trigger(someEvent.id, "a", "c", key1="test", key2="something")
assert someEvent.called == 1
assert len(someEvent.call_args) == 1
assert someEvent.call_args[0] == ["a", "c"]
assert len(someEvent.call_kwargs) == 1
assert someEvent.call_kwargs[0] == { "key1": "test", "key2": "something" }
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4