1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
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)
|