Passed
Push — master ( e2662a...8b3758 )
by manny
01:50
created

test_coop.test_not_written_yet()   A

Complexity

Conditions 1

Size

Total Lines 2
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 2
dl 0
loc 2
rs 10
c 0
b 0
f 0
cc 1
nop 0
1
from datetime import datetime, time, timedelta, timezone
2
from gadgets.coop import Coop
3
from models.race import Entrant, Goal, Race, Status
4
from users_for_testing import get_test_user, get_test_entrant
5
from categories_for_testing import get_test_race_category
6
from races_for_testing import get_test_race
7
8
def test_coop_no_one_finished():
9
    entrant = get_test_entrant(status_value="in_progress")
10
    partner = get_test_entrant(status_value="in_progress")
11
    opponent1 = get_test_entrant(status_value="in_progress")
12
    opponent2 = get_test_entrant(status_value="in_progress")
13
14
    race = get_test_race(entrants=[entrant, partner, opponent1, opponent2])
15
    coop = Coop()
16
    coop.enabled = True
17
    coop.partner = partner.user.full_name
18
    coop.opponent1 = opponent1.user.full_name
19
    coop.opponent2 = opponent2.user.full_name
20
    coop.update_coop_text(race, entrant.user.full_name)
21
    assert coop.label_text == "Race still in progress"
22
    assert coop.text == " "
23
24 View Code Duplication
def test_only_entrant_finished():
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
25
    entrant = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=1, microseconds=1))
26
    partner = get_test_entrant(status_value="in_progress")
27
    opponent1 = get_test_entrant(status_value="in_progress")
28
    opponent2 = get_test_entrant(status_value="in_progress")
29
30
    race = get_test_race(entrants=[entrant, partner, opponent1, opponent2])
31
    coop = Coop()
32
    coop.enabled = True
33
    coop.partner = partner.user.full_name
34
    coop.opponent1 = opponent1.user.full_name
35
    coop.opponent2 = opponent2.user.full_name
36
    coop.update_coop_text(race, entrant.user.full_name)
37
    assert coop.label_text == "Race still in progress"
38
    assert coop.text == " "
39
40 View Code Duplication
def test_only_partner_finished():
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
41
    entrant = get_test_entrant(status_value="in_progress")
42
    partner = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=1, microseconds=1))
43
    opponent1 = get_test_entrant(status_value="in_progress")
44
    opponent2 = get_test_entrant(status_value="in_progress")
45
46
    race = get_test_race(entrants=[entrant, partner, opponent1, opponent2])
47
    coop = Coop()
48
    coop.enabled = True
49
    coop.partner = partner.user.full_name
50
    coop.opponent1 = opponent1.user.full_name
51
    coop.opponent2 = opponent2.user.full_name
52
    coop.update_coop_text(race, entrant.user.full_name)
53
    assert coop.label_text == "Race still in progress"
54
    assert coop.text == " "
55
56 View Code Duplication
def test_only_opponent1_finished():
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
57
    entrant = get_test_entrant(status_value="in_progress")
58
    partner = get_test_entrant(status_value="in_progress")
59
    opponent1 = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=1, microseconds=1))
60
    opponent2 = get_test_entrant(status_value="in_progress")
61
62
    race = get_test_race(entrants=[entrant, partner, opponent1, opponent2])
63
    coop = Coop()
64
    coop.enabled = True
65
    coop.partner = partner.user.full_name
66
    coop.opponent1 = opponent1.user.full_name
67
    coop.opponent2 = opponent2.user.full_name
68
    coop.update_coop_text(race, entrant.user.full_name)
69
    assert coop.label_text == "Race still in progress"
70
    assert coop.text == " "
71
72 View Code Duplication
def test_only_opponent2_finished():
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
73
    entrant = get_test_entrant(status_value="in_progress")
74
    partner = get_test_entrant(status_value="in_progress")
75
    opponent1 = get_test_entrant(status_value="in_progress")
76
    opponent2 = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=1, microseconds=1))
77
78
    race = get_test_race(entrants=[entrant, partner, opponent1, opponent2])
79
    coop = Coop()
80
    coop.enabled = True
81
    coop.partner = partner.user.full_name
82
    coop.opponent1 = opponent1.user.full_name
83
    coop.opponent2 = opponent2.user.full_name
84
    coop.update_coop_text(race, entrant.user.full_name)
85
    assert coop.label_text == "Race still in progress"
86
    assert coop.text == " "
87
88 View Code Duplication
def test_entrant_and_partner_finished():
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
89
    entrant = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=1, microseconds=1))
90
    partner = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=2, microseconds=1))
91
    opponent1 = get_test_entrant(status_value="in_progress")
92
    opponent2 = get_test_entrant(status_value="in_progress")
93
94
    race = get_test_race(entrants=[entrant, partner, opponent1, opponent2])
95
    coop = Coop()
96
    coop.enabled = True
97
    coop.partner = partner.user.full_name
98
    coop.opponent1 = opponent1.user.full_name
99
    coop.opponent2 = opponent2.user.full_name
100
    coop.update_coop_text(race, entrant.user.full_name)
101
    assert coop.label_text == "We won!"
102
    assert coop.text == "1:30:00.0"
103
104 View Code Duplication
def test_opponents_finished():
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
105
    entrant = get_test_entrant(status_value="in_progress")
106
    partner = get_test_entrant(status_value="in_progress")
107
    opponent1 = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=1, microseconds=1))
108
    opponent2 = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=2, microseconds=1))
109
110
    race = get_test_race(entrants=[entrant, partner, opponent1, opponent2])
111
    coop = Coop()
112
    coop.enabled = True
113
    coop.partner = partner.user.full_name
114
    coop.opponent1 = opponent1.user.full_name
115
    coop.opponent2 = opponent2.user.full_name
116
    coop.update_coop_text(race, entrant.user.full_name)
117
    assert coop.label_text == "They won. :("
118
    assert coop.text == "1:30:00.0"
119
120 View Code Duplication
def test_entrant_and_opponent1_finished():
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
121
    entrant = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=2, microseconds=1))
122
    partner = get_test_entrant(status_value="in_progress")
123
    opponent1 = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=1, microseconds=1))
124
    opponent2 = get_test_entrant(status_value="in_progress")
125
126
    race = get_test_race(entrants=[entrant, partner, opponent1, opponent2])
127
    coop = Coop()
128
    coop.enabled = True
129
    coop.partner = partner.user.full_name
130
    coop.opponent1 = opponent1.user.full_name
131
    coop.opponent2 = opponent2.user.full_name
132
    coop.update_coop_text(race, entrant.user.full_name)
133
    assert coop.label_text == "Race still in progress"
134
    assert coop.text == " "
135
136 View Code Duplication
def test_partner_and_opponent1_finished():
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
137
    entrant = get_test_entrant(status_value="in_progress")
138
    partner = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=2, microseconds=1))
139
    opponent1 = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=1, microseconds=1))
140
    opponent2 = get_test_entrant(status_value="in_progress")
141
142
    race = get_test_race(entrants=[entrant, partner, opponent1, opponent2])
143
    coop = Coop()
144
    coop.enabled = True
145
    coop.partner = partner.user.full_name
146
    coop.opponent1 = opponent1.user.full_name
147
    coop.opponent2 = opponent2.user.full_name
148
    coop.update_coop_text(race, entrant.user.full_name)
149
    assert coop.label_text == "Race still in progress"
150
    assert coop.text == " "
151
152
def test_entrant_and_partner_and_opponent1_finished_race_ongoing():
153
    entrant = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=1, microseconds=1))
154
    partner = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=2, microseconds=1))
155
    opponent1 = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=1, microseconds=1))
156
    opponent2 = get_test_entrant(status_value="in_progress")
157
158
    race = get_test_race(entrants=[entrant, partner, opponent1, opponent2])
159
    coop = Coop()
160
    coop.enabled = True
161
    coop.partner = partner.user.full_name
162
    coop.opponent1 = opponent1.user.full_name
163
    coop.opponent2 = opponent2.user.full_name
164
    coop.update_coop_text(race, entrant.user.full_name)
165
    assert coop.label_text == opponent2.user.name + " needs to finish before"
166
    assert coop.text == "2:00:00.0"
167
168 View Code Duplication
def test_entrant_and_partner_and_opponent1_finished_race_over():
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
169
    entrant = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=1, microseconds=1))
170
    partner = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=2, microseconds=1))
171
    opponent1 = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=3, microseconds=2))
172
    opponent2 = get_test_entrant(status_value="in_progress")
173
174
    race = get_test_race(entrants=[entrant, partner, opponent1, opponent2])
175
    coop = Coop()
176
    coop.enabled = True
177
    coop.partner = partner.user.full_name
178
    coop.opponent1 = opponent1.user.full_name
179
    coop.opponent2 = opponent2.user.full_name
180
    coop.update_coop_text(race, entrant.user.full_name)
181
    assert coop.label_text == f"{entrant.user.name} and {partner.user.name} won"
182
    assert coop.text == "1:30:00.0"
183
184 View Code Duplication
def test_opponents_and_entrant_finished_race_ongoing():
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
185
    entrant = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=1, microseconds=1))
186
    partner = get_test_entrant(status_value="in_progress")
187
    opponent1 = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=1, microseconds=2))
188
    opponent2 = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=2, microseconds=1))
189
190
    race = get_test_race(entrants=[entrant, partner, opponent1, opponent2])
191
    coop = Coop()
192
    coop.enabled = True
193
    coop.partner = partner.user.full_name
194
    coop.opponent1 = opponent1.user.full_name
195
    coop.opponent2 = opponent2.user.full_name
196
    coop.update_coop_text(race, entrant.user.full_name)
197
    assert coop.label_text == f"{partner.user.name} needs to finish before"
198
    assert coop.text == "2:00:00.0"
199
200 View Code Duplication
def test_opponents_and_partner_finished_race_over():
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
201
    entrant = get_test_entrant(status_value="in_progress")
202
    partner = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=3, microseconds=3))
203
    opponent1 = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=1, microseconds=1))
204
    opponent2 = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=2, microseconds=1))
205
206
    race = get_test_race(entrants=[entrant, partner, opponent1, opponent2])
207
    coop = Coop()
208
    coop.enabled = True
209
    coop.partner = partner.user.full_name
210
    coop.opponent1 = opponent1.user.full_name
211
    coop.opponent2 = opponent2.user.full_name
212
    coop.update_coop_text(race, entrant.user.full_name)
213
    assert coop.label_text == f"{opponent1.user.name} and {opponent2.user.name} won"
214
    assert coop.text == "1:30:00.0"
215
216 View Code Duplication
def test_everyone_finished_we_won():
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
217
    entrant = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=1, microseconds=1))
218
    partner = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=2, microseconds=1))
219
    opponent1 = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=2, microseconds=1))
220
    opponent2 = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=2, microseconds=1))
221
222
    race = get_test_race(entrants=[entrant, partner, opponent1, opponent2])
223
    coop = Coop()
224
    coop.enabled = True
225
    coop.partner = partner.user.full_name
226
    coop.opponent1 = opponent1.user.full_name
227
    coop.opponent2 = opponent2.user.full_name
228
    coop.update_coop_text(race, entrant.user.full_name)
229
    assert coop.label_text == f"We won!!! Average time:"
230
    assert coop.text == "1:30:00.0"
231
232 View Code Duplication
def test_everyone_finished_opponents_won():
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
233
    entrant = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=2, microseconds=1))
234
    partner = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=2, microseconds=1))
235
    opponent1 = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=1, microseconds=1))
236
    opponent2 = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=2, microseconds=1))
237
238
    race = get_test_race(entrants=[entrant, partner, opponent1, opponent2])
239
    coop = Coop()
240
    coop.enabled = True
241
    coop.partner = partner.user.full_name
242
    coop.opponent1 = opponent1.user.full_name
243
    coop.opponent2 = opponent2.user.full_name
244
    coop.update_coop_text(race, entrant.user.full_name)
245
    assert coop.label_text == f"Opponents won, average time:"
246
    assert coop.text == "1:30:00.0"