Code Duplication    Length = 15-15 lines in 3 locations

tests/test_coop.py 3 locations

@@ 200-214 (lines=15) @@
197
    assert coop.label_text == f"{partner.user.name} needs to finish before"
198
    assert coop.text == "2:00:00.0"
199
200
def test_opponents_and_partner_finished_race_over():
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
def test_everyone_finished_we_won():
217
    entrant = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=1, microseconds=1))
@@ 184-198 (lines=15) @@
181
    assert coop.label_text == f"{entrant.user.name} and {partner.user.name} won"
182
    assert coop.text == "1:30:00.0"
183
184
def test_opponents_and_entrant_finished_race_ongoing():
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
def test_opponents_and_partner_finished_race_over():
201
    entrant = get_test_entrant(status_value="in_progress")
@@ 168-182 (lines=15) @@
165
    assert coop.label_text == opponent2.user.name + " needs to finish before"
166
    assert coop.text == "2:00:00.0"
167
168
def test_entrant_and_partner_and_opponent1_finished_race_over():
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
def test_opponents_and_entrant_finished_race_ongoing():
185
    entrant = get_test_entrant(status_value="finished", finished_at=datetime.now(timezone.utc), finish_time=timedelta(hours=1, microseconds=1))