status_test.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import pytest
  2. import cipy.status
  3. from cipy.status import Status
  4. @pytest.mark.parametrize("status", [e for e in Status])
  5. def test_always_accepts_everything(status: Status) -> None:
  6. assert cipy.status.Always()(status)
  7. @pytest.mark.parametrize("status", [Status.NOT_RUN, Status.SKIPPED, Status.SUCCESS])
  8. def test_success_accepts_some(status: Status) -> None:
  9. assert cipy.status.Success()(status)
  10. @pytest.mark.parametrize("status", [Status.FAILURE, Status.CANCELLED])
  11. def test_success_rejects_some(status: Status) -> None:
  12. assert cipy.status.Success()(status) is False
  13. @pytest.mark.parametrize("status", [e for e in Status])
  14. def test_failure_rejects_all_but_failure(status: Status) -> None:
  15. assert cipy.status.Failure()(status) is (status is Status.FAILURE)
  16. @pytest.mark.parametrize("status", [e for e in Status])
  17. def test_cancelled_rejects_all_but_cancelled(status: Status) -> None:
  18. assert cipy.status.Cancelled()(status) is (status is Status.CANCELLED)
  19. def test_status_ior_is_max() -> None:
  20. status = Status.SKIPPED
  21. status |= Status.SUCCESS
  22. assert status is Status.SUCCESS
  23. status |= Status.FAILURE
  24. assert status is Status.FAILURE
  25. status |= Status.CANCELLED
  26. assert status is Status.CANCELLED
  27. status |= Status.SUCCESS
  28. assert status is Status.CANCELLED