Code Duplication    Length = 15-15 lines in 4 locations

tests/test_coop.py 4 locations

@@ 166-180 (lines=15) @@
163
    assert coop.label_text == opponent2.user.name + " needs to finish before"
164
    assert coop.text == "3:00:00.0"
165
166
def test_entrant_and_partner_and_opponent1_finished_race_over():
167
    entrant = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=1, microseconds=1))
168
    partner = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=2, microseconds=1), users_used=[entrant.user.id])
169
    opponent1 = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=3, microseconds=2), users_used=[entrant.user.id, partner.user.id])
170
    opponent2 = get_test_entrant(status_value="in_progress", users_used=[entrant.user.id, partner.user.id, opponent1.user.id])
171
172
    race = get_test_race(entrants=[entrant, partner, opponent1, opponent2], started_at=time_ago(hours=3, minutes=4))
173
    coop = Coop()
174
    coop.enabled = True
175
    coop.partner = partner.user.full_name
176
    coop.opponent1 = opponent1.user.full_name
177
    coop.opponent2 = opponent2.user.full_name
178
    coop.update_coop_text(race, entrant.user.full_name)
179
    assert coop.label_text == f"{entrant.user.name} and {partner.user.name} won"
180
    assert coop.text == "1:30:00.0"
181
182
def test_opponents_and_entrant_finished_race_ongoing():
183
    entrant = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=1, microseconds=1))
@@ 150-164 (lines=15) @@
147
    assert coop.label_text == "Race still in progress"
148
    assert coop.text == " "
149
150
def test_entrant_and_partner_and_opponent1_finished_race_ongoing():
151
    entrant = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=2, microseconds=1))
152
    partner = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=2, microseconds=1), users_used=[entrant.user.id])
153
    opponent1 = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=1, microseconds=1), users_used=[entrant.user.id, partner.user.id])
154
    opponent2 = get_test_entrant(status_value="in_progress", users_used=[entrant.user.id, partner.user.id, opponent1.user.id])
155
156
    race = get_test_race(entrants=[entrant, partner, opponent1, opponent2], started_at=time_ago(hours=2, minutes=12))
157
    coop = Coop()
158
    coop.enabled = True
159
    coop.partner = partner.user.full_name
160
    coop.opponent1 = opponent1.user.full_name
161
    coop.opponent2 = opponent2.user.full_name
162
    coop.update_coop_text(race, entrant.user.full_name)
163
    assert coop.label_text == opponent2.user.name + " needs to finish before"
164
    assert coop.text == "3:00:00.0"
165
166
def test_entrant_and_partner_and_opponent1_finished_race_over():
167
    entrant = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=1, microseconds=1))
@@ 198-212 (lines=15) @@
195
    assert coop.label_text == f"{partner.user.name} needs to finish before"
196
    assert coop.text == "3:00:00.0"
197
198
def test_opponents_and_partner_finished_race_over():
199
    entrant = get_test_entrant(status_value="in_progress")
200
    partner = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=3, microseconds=5), users_used=[entrant.user.id])
201
    opponent1 = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=1, microseconds=1), users_used=[entrant.user.id, partner.user.id])
202
    opponent2 = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=2, microseconds=1), users_used=[entrant.user.id, partner.user.id, opponent1.user.id])
203
204
    race = get_test_race(entrants=[entrant, partner, opponent1, opponent2], started_at=time_ago(hours=3, minutes=1))
205
    coop = Coop()
206
    coop.enabled = True
207
    coop.partner = partner.user.full_name
208
    coop.opponent1 = opponent1.user.full_name
209
    coop.opponent2 = opponent2.user.full_name
210
    coop.update_coop_text(race, entrant.user.full_name)
211
    assert coop.label_text == f"{opponent1.user.name} and {opponent2.user.name} won"
212
    assert coop.text == "1:30:00.0"
213
214
def test_everyone_finished_we_won():
215
    entrant = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=1, microseconds=1))
@@ 182-196 (lines=15) @@
179
    assert coop.label_text == f"{entrant.user.name} and {partner.user.name} won"
180
    assert coop.text == "1:30:00.0"
181
182
def test_opponents_and_entrant_finished_race_ongoing():
183
    entrant = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=1, microseconds=1))
184
    partner = get_test_entrant(status_value="in_progress", users_used=[entrant.user.id])
185
    opponent1 = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=2, microseconds=2), users_used=[entrant.user.id, partner.user.id])
186
    opponent2 = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=2, microseconds=1), users_used=[entrant.user.id, partner.user.id, opponent1.user.id])
187
188
    race = get_test_race(entrants=[entrant, partner, opponent1, opponent2], started_at=time_ago(hours=2, minutes=1))
189
    coop = Coop()
190
    coop.enabled = True
191
    coop.partner = partner.user.full_name
192
    coop.opponent1 = opponent1.user.full_name
193
    coop.opponent2 = opponent2.user.full_name
194
    coop.update_coop_text(race, entrant.user.full_name)
195
    assert coop.label_text == f"{partner.user.name} needs to finish before"
196
    assert coop.text == "3:00:00.0"
197
198
def test_opponents_and_partner_finished_race_over():
199
    entrant = get_test_entrant(status_value="in_progress")