Ejemplo n.º 1
0
             IOSuccess(2)],
            IOFailure('a'),
        ),
        ([IOSuccess(1), IOFailure('a')], IOFailure('a')),
        ([IOFailure('a'), IOFailure('b')], IOFailure('a')),
    ])
def test_fold_collect(iterable, sequence):
    """Iterable for regular types and ``Fold``."""
    assert Fold.collect(iterable, sequence.from_value(())) == sequence


@pytest.mark.parametrize(
    ('iterable', 'sequence'),
    [
        # Regular types:
        ([], Reader.from_value(())),
        ([Reader.from_value(1)], Reader.from_value((1, ))),
        (
            [Reader.from_value(1), Reader.from_value(2)],
            Reader.from_value((1, 2)),
        ),

        # Can fail:
        ([], ReaderResult.from_value(())),
        ([ReaderResult.from_value(1)], ReaderResult.from_value((1, ))),
        (
            [ReaderResult.from_value(1),
             ReaderResult.from_value(2)],
            ReaderResult.from_value((1, 2)),
        ),
        (
Ejemplo n.º 2
0
from returns.primitives.container import BaseContainer
from returns.result import Result

_containers: Sequence[BaseContainer] = (
    Result.from_failure(1),
    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)

Ejemplo n.º 3
0
def test_collect_all_reader(iterable, sequence):
    """Iterable for ``Reader`` and ``CollectAll``."""
    assert Reader.from_iterable(iterable, CollectAll)(...) == sequence(...)
Ejemplo n.º 4
0
            [IOFailure('a'), IOSuccess(1),
             IOSuccess(2)],
            IOFailure('a'),
        ),
        ([IOFailure('a'), IOFailure('b')], IOFailure('a')),
    ])
def test_fold_loop(iterable, sequence):
    """Iterable for ``Result`` and ``FailFast``."""
    assert Fold.loop(iterable, sequence.from_value(10), _sum_two) == sequence


@pytest.mark.parametrize(
    ('iterable', 'sequence'),
    [
        # Regular types:
        ([], Reader.from_value(10)),
        ([Reader.from_value(1)], Reader.from_value(11)),
        (
            [Reader.from_value(1), Reader.from_value(2)],
            Reader.from_value(13),
        ),

        # Can fail:
        ([], ReaderResult.from_value(10)),
        ([ReaderResult.from_value(1)], ReaderResult.from_value(11)),
        (
            [ReaderResult.from_value(1),
             ReaderResult.from_value(2)],
            ReaderResult.from_value(13),
        ),
        (
Ejemplo n.º 5
0
def test_fail_fast_reader(iterable, sequence):
    """Iterable for ``Reader`` and ``FailFast``."""
    assert Reader.from_iterable(iterable, FailFast)(...) == sequence(...)