Code Duplication    Length = 25-27 lines in 4 locations

tests/test_coop.py 4 locations

@@ 70-96 (lines=27) @@
67
    assert coop.text == " "
68
69
70
def test_only_partner_finished(random_users):
71
    entrant = get_test_entrant(next(random_users), status_value="in_progress")
72
    partner = get_test_entrant(
73
        next(random_users),
74
        status_value="finished", finished_at=datetime.now(timezone.utc),
75
        finish_time=timedelta(hours=1, microseconds=1)
76
    )
77
    opponent1 = get_test_entrant(
78
        next(random_users), status_value="in_progress",
79
    )
80
    opponent2 = get_test_entrant(
81
        next(random_users), status_value="in_progress"
82
    )
83
84
    race = get_test_race(
85
        entrants=[entrant, partner, opponent1, opponent2],
86
        opened_by=next(random_users),
87
        started_at=time_ago(hours=1, minutes=15)
88
    )
89
    coop = Coop()
90
    coop.enabled = True
91
    coop.partner = partner.user.full_name
92
    coop.opponent1 = opponent1.user.full_name
93
    coop.opponent2 = opponent2.user.full_name
94
    coop.update_coop_text(race, entrant.user.full_name)
95
    assert coop.label_text == "Race still in progress"
96
    assert coop.text == " "
97
98
99
def test_only_opponent1_finished(random_users):
@@ 126-150 (lines=25) @@
123
    assert coop.text == " "
124
125
126
def test_only_opponent2_finished(random_users):
127
    entrant = get_test_entrant(next(random_users), status_value="in_progress")
128
    partner = get_test_entrant(next(random_users), status_value="in_progress")
129
    opponent1 = get_test_entrant(
130
        next(random_users), status_value="in_progress"
131
    )
132
    opponent2 = get_test_entrant(
133
        next(random_users), status_value="finished",
134
        finished_at=datetime.now(timezone.utc),
135
        finish_time=timedelta(hours=1, microseconds=1),
136
    )
137
138
    race = get_test_race(
139
        entrants=[entrant, partner, opponent1, opponent2],
140
        opened_by=next(random_users),
141
        started_at=time_ago(hours=1, minutes=15)
142
    )
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
153
def test_entrant_and_partner_finished(random_users):
@@ 99-123 (lines=25) @@
96
    assert coop.text == " "
97
98
99
def test_only_opponent1_finished(random_users):
100
    entrant = get_test_entrant(next(random_users), status_value="in_progress")
101
    partner = get_test_entrant(next(random_users), status_value="in_progress")
102
    opponent1 = get_test_entrant(
103
        next(random_users),
104
        status_value="finished", finished_at=datetime.now(timezone.utc),
105
        finish_time=timedelta(hours=1, microseconds=1)
106
    )
107
    opponent2 = get_test_entrant(
108
        next(random_users), status_value="in_progress"
109
    )
110
111
    race = get_test_race(
112
        entrants=[entrant, partner, opponent1, opponent2],
113
        opened_by=next(random_users),
114
        started_at=time_ago(hours=1, minutes=15)
115
    )
116
    coop = Coop()
117
    coop.enabled = True
118
    coop.partner = partner.user.full_name
119
    coop.opponent1 = opponent1.user.full_name
120
    coop.opponent2 = opponent2.user.full_name
121
    coop.update_coop_text(race, entrant.user.full_name)
122
    assert coop.label_text == "Race still in progress"
123
    assert coop.text == " "
124
125
126
def test_only_opponent2_finished(random_users):
@@ 43-67 (lines=25) @@
40
    assert coop.text == " "
41
42
43
def test_only_entrant_finished(random_users):
44
    entrant = get_test_entrant(
45
        next(random_users),
46
        status_value="finished", finished_at=datetime.now(timezone.utc),
47
        finish_time=timedelta(hours=1, microseconds=1)
48
    )
49
    partner = get_test_entrant(next(random_users), status_value="in_progress")
50
    opponent1 = get_test_entrant(
51
        next(random_users), status_value="in_progress")
52
    opponent2 = get_test_entrant(
53
        next(random_users), status_value="in_progress")
54
55
    race = get_test_race(
56
        entrants=[entrant, partner, opponent1, opponent2],
57
        opened_by=next(random_users),
58
        started_at=time_ago(hours=1, minutes=15)
59
    )
60
    coop = Coop()
61
    coop.enabled = True
62
    coop.partner = partner.user.full_name
63
    coop.opponent1 = opponent1.user.full_name
64
    coop.opponent2 = opponent2.user.full_name
65
    coop.update_coop_text(race, entrant.user.full_name)
66
    assert coop.label_text == "Race still in progress"
67
    assert coop.text == " "
68
69
70
def test_only_partner_finished(random_users):