def test_connect_spawn_emits_always(self): signal = AdHocSignal() mock = CoroutineMock() async def coro(*args, **kwargs): await mock(*args, **kwargs) signal.connect(coro, AdHocSignal.SPAWN_WITH_LOOP(None)) signal.fire("a", 1, b="c") signal.fire("x") self.assertSequenceEqual(mock.mock_calls, []) run_coroutine(asyncio.sleep(0)) run_coroutine(asyncio.sleep(0)) self.assertSequenceEqual( mock.mock_calls, [ unittest.mock.call("a", 1, b="c"), unittest.mock.call("x"), ] )
def test_connect_spawn_emits_always(self): signal = AdHocSignal() mock = CoroutineMock() @asyncio.coroutine def coro(*args, **kwargs): yield from mock(*args, **kwargs) signal.connect(coro, AdHocSignal.SPAWN_WITH_LOOP(None)) signal.fire("a", 1, b="c") signal.fire("x") self.assertSequenceEqual(mock.mock_calls, []) run_coroutine(asyncio.sleep(0)) run_coroutine(asyncio.sleep(0)) self.assertSequenceEqual( mock.mock_calls, [ unittest.mock.call("a", 1, b="c"), unittest.mock.call("x"), ] )
def test_fire_removes_stale_references(self, ref): signal = AdHocSignal() fun = unittest.mock.MagicMock() fun.return_value = None ref().return_value = None signal.connect(fun, AdHocSignal.WEAK) signal.fire() self.assertFalse(signal._connections)
def test_fire_removes_stale_references(self, ref): signal = AdHocSignal() fun = unittest.mock.MagicMock() fun.return_value = None ref().return_value = None signal.connect(fun, AdHocSignal.WEAK) signal.fire() self.assertFalse(signal._connections)
def test_connect_async(self): signal = AdHocSignal() mock = unittest.mock.MagicMock() fun = functools.partial(mock) signal.connect(fun, AdHocSignal.ASYNC_WITH_LOOP(None)) signal.fire() mock.assert_not_called() run_coroutine(asyncio.sleep(0)) mock.assert_called_once_with()
def test_connect_async(self): signal = AdHocSignal() mock = unittest.mock.MagicMock() fun = functools.partial(mock) signal.connect(fun, AdHocSignal.ASYNC_WITH_LOOP(None)) signal.fire() mock.assert_not_called() run_coroutine(asyncio.sleep(0)) mock.assert_called_once_with()
def test_connect_and_fire(self): signal = AdHocSignal() fun = unittest.mock.MagicMock() fun.return_value = None signal.connect(fun) signal.fire() signal.fire() self.assertSequenceEqual([ unittest.mock.call(), unittest.mock.call(), ], fun.mock_calls)
def test_connect_and_fire(self): signal = AdHocSignal() fun = unittest.mock.MagicMock() fun.return_value = None signal.connect(fun) signal.fire() signal.fire() self.assertSequenceEqual( [ unittest.mock.call(), unittest.mock.call(), ], fun.mock_calls )
def test_connect_spawn(self): signal = AdHocSignal() mock = CoroutineMock() @asyncio.coroutine def coro(*args, **kwargs): yield from mock(*args, **kwargs) signal.connect(coro, AdHocSignal.SPAWN_WITH_LOOP(None)) signal.fire("a", 1, b="c") self.assertSequenceEqual(mock.mock_calls, []) run_coroutine(asyncio.sleep(0)) self.assertSequenceEqual(mock.mock_calls, [unittest.mock.call("a", 1, b="c")])