Esempio n. 1
0
    async def main():
        promise = Promise()
        assert not promise.is_set()

        producer_task = await curio.spawn(producer(promise))

        assert 42 == await consumer(promise)
        assert promise.is_set()
Esempio n. 2
0
    async def main():
        promise = Promise()
        producer_task = await curio.spawn(exception_producer(promise))

        with pytest.raises(RuntimeError):
            await consumer(promise)

        await producer_task.join()
Esempio n. 3
0
    async def main():
        promise = Promise()
        assert not promise.is_set()
        assert repr(promise).endswith('[unset]>')

        await promise.set(42)

        assert promise.is_set()
        assert promise._data == 42
        assert promise._exception is None
        assert repr(promise).endswith('[42]>')

        promise.clear()

        assert not promise.is_set()
        assert promise._data is None
        assert promise._exception is None
        assert repr(promise).endswith('[unset]>')

        async with promise:
            raise RuntimeError()

        assert promise.is_set()
        assert promise._data is None
        assert isinstance(promise._exception, RuntimeError)
        assert repr(promise).endswith('[RuntimeError()]>')

        promise.clear()

        assert not promise.is_set()
        assert promise._data is None
        assert promise._exception is None
        assert repr(promise).endswith('[unset]>')
Esempio n. 4
0
 async def main():
     promise = Promise()
     async with promise:
         pass
     assert not promise.is_set()