From bdec62706f58e564716e40bea69cc3e3cae3fe86 Mon Sep 17 00:00:00 2001 From: Mark Pittaway <mark.pittaway@gmail.com> Date: Fri, 29 Nov 2024 10:45:27 +1100 Subject: [PATCH] add tests --- tests/core/signals.py | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 tests/core/signals.py diff --git a/tests/core/signals.py b/tests/core/signals.py new file mode 100644 index 000000000..61ed11405 --- /dev/null +++ b/tests/core/signals.py @@ -0,0 +1,34 @@ +from unittest import IsolatedAsyncioTestCase +from unittest.mock import Mock, AsyncMock +from superdesk.core import AsyncSignal + + +class AsyncSignalsTestCase(IsolatedAsyncioTestCase): + async def test_signals(self): + signal = AsyncSignal[str, bool]("on_some_event") + + signal_cb1 = Mock() + signal_cb2 = AsyncMock() + signal_cb3 = AsyncMock() + + signal += signal_cb1 + signal.connect(signal_cb2) + signal.connect(signal_cb3) + + await signal.send("monkeys", True) + signal_cb1.assert_called_once_with("monkeys", True) + signal_cb2.assert_called_once_with("monkeys", True) + signal_cb2.assert_awaited() + signal_cb3.assert_called_once_with("monkeys", True) + signal_cb3.assert_awaited() + + signal_cb1.reset_mock() + signal_cb2.reset_mock() + signal_cb3.reset_mock() + + signal -= signal_cb2 + signal.disconnect(signal_cb3) + await signal.send("space", False) + signal_cb1.assert_called_once_with("space", False) + signal_cb2.assert_not_called() + signal_cb3.assert_not_called()