diff options
Diffstat (limited to 'tests/wxet/models/test_definitions.py')
| -rw-r--r-- | tests/wxet/models/test_definitions.py | 113 |
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) |
