aboutsummaryrefslogtreecommitdiff
path: root/tests/wxet/models/test_definitions.py
diff options
context:
space:
mode:
authorMax Nanis2026-03-06 16:49:46 -0500
committerMax Nanis2026-03-06 16:49:46 -0500
commit91d040211a4ed6e4157896256a762d3854777b5e (patch)
treecd95922ea4257dc8d3f4e4cbe8534474709a20dc /tests/wxet/models/test_definitions.py
downloadgeneralresearch-91d040211a4ed6e4157896256a762d3854777b5e.tar.gz
generalresearch-91d040211a4ed6e4157896256a762d3854777b5e.zip
Initial commitv3.3.4
Diffstat (limited to 'tests/wxet/models/test_definitions.py')
-rw-r--r--tests/wxet/models/test_definitions.py113
1 files changed, 113 insertions, 0 deletions
diff --git a/tests/wxet/models/test_definitions.py b/tests/wxet/models/test_definitions.py
new file mode 100644
index 0000000..543b9f1
--- /dev/null
+++ b/tests/wxet/models/test_definitions.py
@@ -0,0 +1,113 @@
+import pytest
+
+
+class TestWXETStatusCode1:
+
+ def test_is_pre_task_entry_fail_pre(self):
+ from generalresearch.wxet.models.definitions import (
+ WXETStatusCode1,
+ )
+
+ assert WXETStatusCode1.UNKNOWN.is_pre_task_entry_fail
+ assert WXETStatusCode1.WXET_FAIL.is_pre_task_entry_fail
+ assert WXETStatusCode1.WXET_ABANDON.is_pre_task_entry_fail
+
+ def test_is_pre_task_entry_fail_post(self):
+ from generalresearch.wxet.models.definitions import (
+ WXETStatusCode1,
+ )
+
+ assert not WXETStatusCode1.BUYER_OVER_QUOTA.is_pre_task_entry_fail
+ assert not WXETStatusCode1.BUYER_DUPLICATE.is_pre_task_entry_fail
+ assert not WXETStatusCode1.BUYER_TASK_NOT_AVAILABLE.is_pre_task_entry_fail
+
+ assert not WXETStatusCode1.BUYER_ABANDON.is_pre_task_entry_fail
+ assert not WXETStatusCode1.BUYER_FAIL.is_pre_task_entry_fail
+ assert not WXETStatusCode1.BUYER_QUALITY_FAIL.is_pre_task_entry_fail
+ assert not WXETStatusCode1.BUYER_POSTBACK_NOT_RECEIVED.is_pre_task_entry_fail
+ assert not WXETStatusCode1.COMPLETE.is_pre_task_entry_fail
+
+
+class TestCheckWXETStatusConsistent:
+
+ def test_completes(self):
+
+ from generalresearch.wxet.models.definitions import (
+ WXETStatus,
+ WXETStatusCode1,
+ check_wxet_status_consistent,
+ )
+
+ with pytest.raises(AssertionError) as cm:
+ check_wxet_status_consistent(
+ status=WXETStatus.COMPLETE,
+ status_code_1=WXETStatusCode1.UNKNOWN,
+ status_code_2=None,
+ )
+
+ assert (
+ "Invalid StatusCode1 when Status=COMPLETE. Use WXETStatusCode1.COMPLETE"
+ == str(cm.value)
+ )
+
+ def test_abandon(self):
+
+ from generalresearch.wxet.models.definitions import (
+ WXETStatus,
+ WXETStatusCode1,
+ check_wxet_status_consistent,
+ )
+
+ with pytest.raises(AssertionError) as cm:
+ check_wxet_status_consistent(
+ status=WXETStatus.ABANDON,
+ status_code_1=WXETStatusCode1.COMPLETE,
+ status_code_2=None,
+ )
+ assert (
+ "Invalid StatusCode1 when Status=ABANDON. Use WXET_ABANDON or BUYER_ABANDON"
+ == str(cm.value)
+ )
+
+ def test_fail(self):
+
+ from generalresearch.wxet.models.definitions import (
+ WXETStatus,
+ WXETStatusCode1,
+ check_wxet_status_consistent,
+ )
+
+ for sc1 in [
+ WXETStatusCode1.COMPLETE,
+ WXETStatusCode1.WXET_ABANDON,
+ WXETStatusCode1.WXET_ABANDON,
+ ]:
+ with pytest.raises(AssertionError) as cm:
+ check_wxet_status_consistent(
+ status=WXETStatus.FAIL,
+ status_code_1=sc1,
+ status_code_2=None,
+ )
+ assert "Invalid StatusCode1 when Status=FAIL." == str(cm.value)
+
+ def test_status_code_2(self):
+ """Any StatusCode2 should fail if the StatusCode1 isn't
+ StatusCode1.WXET_FAIL
+ """
+
+ from generalresearch.wxet.models.definitions import (
+ WXETStatus,
+ WXETStatusCode1,
+ WXETStatusCode2,
+ check_wxet_status_consistent,
+ )
+
+ for sc2 in WXETStatusCode2:
+ with pytest.raises(AssertionError) as cm:
+ check_wxet_status_consistent(
+ status=WXETStatus.FAIL,
+ status_code_1=WXETStatusCode1.COMPLETE,
+ status_code_2=sc2,
+ )
+
+ assert "Invalid StatusCode1 when Status=FAIL." == str(cm.value)