コード例 #1
0
ファイル: test_concat.py プロジェクト: hilearn/aioreactive
async def test_concat_happy():
    xs = from_iterable(range(5))
    ys = from_iterable(range(5, 10))
    result = []

    async def asend(value):
        log.debug("test_merge_done:send: ", value)
        result.append(value)

    zs = concat(xs, ys)

    await run(zs, AsyncAnonymousObserver(asend))
    assert result == list(range(10))
コード例 #2
0
ファイル: test_catch.py プロジェクト: tr11/aioreactive
async def test_catch_no_error():
    xs = from_iterable(range(0, 5))
    ys = from_iterable(range(5, 10))
    result = []

    async def asend(value):
        log.debug("test_catch_no_error:asend(%s)", value)
        result.append(value)

    zs = catch_exception((xs, ys))

    await run(zs, AsyncAnonymousObserver(asend))
    assert result == list(range(5))
コード例 #3
0
async def test_distinct_until_changed_different():
    xs = from_iterable([1, 2, 3])

    obv = AsyncAnonymousObserver()
    ys = distinct_until_changed(xs)

    await run(ys, obv)
    assert obv.values == [(0, 1), (0, 2), (0, 3), (0, )]
コード例 #4
0
ファイル: test_concat.py プロジェクト: tr11/aioreactive
async def test_concat_async():
    xs = from_async_iterable(asynciter())
    ys = from_iterable(range(5, 10))
    result = []

    async def asend(value):
        log.debug("test_concat_async:send(%s)", value)
        result.append(value)

    zs = concat(xs, ys)

    await run(zs, AsyncAnonymousObserver(asend))
    assert result == list(range(10))
コード例 #5
0
ファイル: test_filter.py プロジェクト: tr11/aioreactive
async def test_filter_happy() -> None:
    xs = from_iterable([1, 2, 3])
    result = []

    async def asend(value: int) -> None:
        result.append(value)

    async def predicate(value: int) -> bool:
        await asyncio.sleep(0.1)
        return value > 1

    ys = filter(predicate, xs)
    value = await run(ys, AsyncAnonymousObserver(asend))
    assert value == 3
    assert result == [2, 3]
コード例 #6
0
ファイル: test_filter.py プロジェクト: tr11/aioreactive
async def test_filter_predicate_throws() -> None:
    xs = from_iterable([1, 2, 3])
    err = MyException("err")
    result = []

    async def asend(value: int) -> None:
        result.append(value)

    async def predicate(value: int) -> bool:
        await asyncio.sleep(0.1)
        raise err

    ys = filter(predicate, xs)

    with pytest.raises(MyException):
        await run(ys, AsyncAnonymousObserver(asend))

    assert result == []
コード例 #7
0
ファイル: __init__.py プロジェクト: cionkubes/cion-worker
    async def init(self):
        await self.connection.connect()
        unpack = itemgetter("config", "old_val", "new_val")

        async def update(x):
            cfg, old, new = unpack(x)

            try:
                if new is None:
                    self.latest_config[cfg].delete(old)
                else:
                    self.latest_config[cfg].set(new)
            except:
                logger.exception(f"Unhandled error while updating config {cfg}.")
            else:
                logger.info(f"Updated config {cfg} with {x}")

        return await subscribe(
            from_iterable(self.configs.values())
                | Operators.flat_map(self.config_observable),
            AsyncAnonymousObserver(update))
コード例 #8
0
 async def mapper(value):
     return from_iterable([value])