import pytest import cipy.status from cipy.status import Status @pytest.mark.parametrize("status", [e for e in Status]) def test_always_accepts_everything(status: Status) -> None: assert cipy.status.Always()(status) @pytest.mark.parametrize("status", [Status.NOT_RUN, Status.SKIPPED, Status.SUCCESS]) def test_success_accepts_some(status: Status) -> None: assert cipy.status.Success()(status) @pytest.mark.parametrize("status", [Status.FAILURE, Status.CANCELLED]) def test_success_rejects_some(status: Status) -> None: assert cipy.status.Success()(status) is False @pytest.mark.parametrize("status", [e for e in Status]) def test_failure_rejects_all_but_failure(status: Status) -> None: assert cipy.status.Failure()(status) is (status is Status.FAILURE) @pytest.mark.parametrize("status", [e for e in Status]) def test_cancelled_rejects_all_but_cancelled(status: Status) -> None: assert cipy.status.Cancelled()(status) is (status is Status.CANCELLED) def test_status_ior_is_max() -> None: status = Status.SKIPPED status |= Status.SUCCESS assert status is Status.SUCCESS status |= Status.FAILURE assert status is Status.FAILURE status |= Status.CANCELLED assert status is Status.CANCELLED status |= Status.SUCCESS assert status is Status.CANCELLED