|
|
@@ -0,0 +1,45 @@
|
|
|
+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
|