def test_cmp_ok(self, result): other: Result[int, int] = OK(1) assert result.ok < other.ok assert result != other assert result < other assert result <= other assert result <= OK(result.ok) assert other > result assert other >= result assert other >= OK(other.ok)
def test_map(self, result): ok = "ok" assert not isinstance(result.ok, type(ok)) other = result.map(lambda v: ok) assert other != result assert other == OK(ok)
def test_bind_ok(self, result): ok: Result[str, str] = OK("ok") assert result.ok != ok.ok other = result.bind(lambda v: ok) assert other != result assert other == ok
def test_cmp_ok(self, result, value): other: Result[int, int] = OK(value) assert result.error == other.ok assert result != other assert result > other assert result >= other assert other < result assert other <= result
def test_eq(self, result, value): assert (result == value) is False assert (value == result) is False assert (result != value) is True assert (value != result) is True ok: Result[int, int] = OK(value) assert (result == ok) is True assert (ok == result) is True assert (result != ok) is False assert (ok != result) is False err: Result[int, int] = Error(value) assert (result == err) is False assert (err == result) is False assert (result != err) is True assert (err != result) is True
def test_flatten2(self, result): nested: Result[Result, Result] = OK(OK(result)) assert nested != result assert nested.flatten() == result assert nested.flatten() == result.flatten() assert nested.flatten() == nested.join()
def result(self, value): return OK(value)
def test_bad_nesting(self, result): with pytest.raises(TypeError): OK(result)