def test_token_chain_trigger_first(): token = CancelToken('token') token2 = CancelToken('token2') token3 = CancelToken('token3') chain = token.chain(token2).chain(token3) assert not chain.triggered token.trigger() assert chain.triggered assert chain.triggered_token == token
def test_token_chain_trigger_last(): token = CancelToken('token') token2 = CancelToken('token2') token3 = CancelToken('token3') intermediate_chain = token.chain(token2) chain = intermediate_chain.chain(token3) assert not chain.triggered token3.trigger() assert chain.triggered assert chain.triggered_token == token3 assert not intermediate_chain.triggered
def test_token_single(): token = CancelToken('token') assert not token.triggered token.trigger() assert token.triggered assert token.triggered_token == token
async def test_cancellable_wait_operation_cancelled(event_loop): token = CancelToken('token') token.trigger() with pytest.raises(OperationCancelled): await token.cancellable_wait(asyncio.sleep(0.02)) await assert_only_current_task_not_done()