Example #1
0
 def __call__(
     self,
     inner_value: str,
     use_result: Result[str, str],
 ) -> ReaderFutureResult[NoDeps, None, str]:
     self._logs.append((inner_value, use_result))
     return ReaderFutureResult.from_value(None)
Example #2
0
async def test_fold_collect_reader_future_result(subtests):
    """Iterable for ``ReaderFutureResult`` and ``Fold``."""
    containers: List[Tuple[  # noqa: WPS234
        Iterable[ReaderFutureResult[int, str, NoDeps]],
        ReaderFutureResult[Sequence[int], str, NoDeps], ]] = [
            ([], ReaderFutureResult.from_value(())),
            (
                [ReaderFutureResult.from_value(1)],
                ReaderFutureResult.from_value((1, )),
            ),
            (
                [
                    ReaderFutureResult.from_value(1),
                    ReaderFutureResult.from_value(2),
                ],
                ReaderFutureResult.from_value((1, 2)),
            ),
            (
                [
                    ReaderFutureResult.from_failure('a'),
                    ReaderFutureResult.from_value(1),
                    ReaderFutureResult.from_value(2),
                ],
                ReaderFutureResult.from_failure('a'),
            ),
            (
                [
                    ReaderFutureResult.from_failure('a'),
                    ReaderFutureResult.from_failure('b'),
                ],
                ReaderFutureResult.from_failure('a'),
            ),
        ]
    for iterable, sequence in containers:
        with subtests.test(iterable=iterable, sequence=sequence):
            assert await Fold.collect(
                iterable,
                sequence.from_value(()),
            )(...) == await sequence(...)
Example #3
0
    Result.from_value(1),
    IO(1),
    IOResult.from_failure(1),
    IOResult.from_value(1),
    Maybe.from_value(1),
    Maybe.from_value(None),
    Maybe.from_optional(None),
    Future.from_value(1),
    FutureResult.from_value(1),
    FutureResult.from_failure(1),
    Reader.from_value(1),
    ReaderResult.from_value(1),
    ReaderResult.from_failure(1),
    ReaderIOResult.from_value(1),
    ReaderIOResult.from_failure(1),
    ReaderFutureResult.from_value(1),
    ReaderFutureResult.from_failure(1),
)


@pytest.mark.parametrize('container', _containers)
def test_assert_equal(container, anyio_backend_name: str):
    """Ensure that containers can be equal."""
    assert_equal(container, container, backend=anyio_backend_name)


@pytest.mark.parametrize('container', _containers)
def test_assert_equal_plugin(
    container,
    anyio_backend_name: str,
    returns: ReturnsAsserts,
Example #4
0
 def __call__(
     self,
     inner_value: str,
     use_result: Result[str, str],
 ) -> ReaderFutureResult[NoDeps, None, str]:
     return ReaderFutureResult.from_failure('release failure')
Example #5
0
def _use_failure(inner_value: str) -> ReaderFutureResult[NoDeps, str, str]:
    return ReaderFutureResult.from_failure('use failure')
Example #6
0
def _use_success(inner_value: str) -> ReaderFutureResult[NoDeps, str, str]:
    return ReaderFutureResult.from_value('use success')
Example #7
0
def _acquire_failure() -> ReaderFutureResult[NoDeps, str, str]:
    return ReaderFutureResult.from_failure('acquire failure')
Example #8
0
def _acquire_success() -> ReaderFutureResult[NoDeps, str, str]:
    return ReaderFutureResult.from_value('acquire success')