diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_signals.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/test_signals.py b/tests/test_signals.py index 4f1114d..1fca3e5 100644 --- a/tests/test_signals.py +++ b/tests/test_signals.py @@ -332,6 +332,33 @@ def test_strong_receiver(): assert [id(fn) for fn in sig.receivers.values()] == [fn_id] +async def test_async_receiver(): + sentinel = [] + + async def received_async(sender): + sentinel.append(sender) + + def received(sender): + sentinel.append(sender) + + def wrapper(func): + + async def inner(*args, **kwargs): + func(*args, **kwargs) + + return inner + + sig = blinker.Signal() + sig.connect(received) + sig.connect(received_async) + + await sig.send_async(_sync_wrapper=wrapper) + assert len(sentinel) == 2 + + with pytest.raises(RuntimeError): + sig.send() + + def test_instancemethod_receiver(): sentinel = [] |