Code Duplication    Length = 14-14 lines in 3 locations

tests/test_qualifier.py 3 locations

@@ 85-98 (lines=14) @@
82
    assert qualifier.entrant_score == "1.00"
83
    assert qualifier.par_text == "1:35:00.0"
84
85
def test_cutoff_and_entrant_finished_in_first():
86
    entrant = get_test_entrant(status_value="finished", finished_at=time_ago(minutes=20), finish_time=timedelta(hours=1, minutes=30, microseconds=1), place=2)
87
    second_place = get_test_entrant(status_value="finished", finished_at=time_ago(minutes=15), finish_time=timedelta(hours=1, minutes=35, microseconds=1), place=1, users_used=[entrant.user.id])
88
    third_place = get_test_entrant(status_value="finished", finished_at=time_ago(minutes=10), finish_time=timedelta(hours=1, minutes=40, microseconds=1), place=3, users_used=[entrant.user.id, second_place.user.id])
89
    entrants = [ entrant, second_place, third_place ]
90
    for i in range(4, 20):
91
        users_used = (x.user for x in entrants)
92
        entrants.append(get_test_entrant(users_used=users_used))
93
    race = get_test_race(entrants=entrants)
94
    qualifier = get_test_qualifier()
95
    qualifier.update_qualifier_text(race, entrant.user.full_name)
96
    # par is 95 minutes, entrant's time is 90 minutes. 2-(90/95) ""= 1.05
97
    assert qualifier.entrant_score == "1.05"
98
    assert qualifier.par_text == "1:35:00.0"
@@ 70-83 (lines=14) @@
67
    assert qualifier.entrant_score == "0.89"
68
    assert qualifier.par_text == "1:35:00.0"
69
70
def test_cutoff_and_entrant_finished_in_top():
71
    entrant = get_test_entrant(status_value="finished", finished_at=time_ago(minutes=15), finish_time=timedelta(hours=1, minutes=35, microseconds=1), place=2)
72
    first_place = get_test_entrant(status_value="finished", finished_at=time_ago(minutes=20), finish_time=timedelta(hours=1, minutes=30, microseconds=1), place=1, users_used=[entrant.user.id])
73
    third_place = get_test_entrant(status_value="finished", finished_at=time_ago(minutes=10), finish_time=timedelta(hours=1, minutes=40, microseconds=1), place=3, users_used=[entrant.user.id, first_place.user.id])
74
    entrants = [ first_place, entrant, third_place ]
75
    for i in range(4, 20):
76
        users_used = (x.user for x in entrants)
77
        entrants.append(get_test_entrant(users_used=users_used))
78
    race = get_test_race(entrants=entrants)
79
    qualifier = get_test_qualifier()
80
    qualifier.update_qualifier_text(race, entrant.user.full_name)
81
    # par is 95 minutes, entrant's time is 95 minutes. 2-(95/95) = 1.00
82
    assert qualifier.entrant_score == "1.00"
83
    assert qualifier.par_text == "1:35:00.0"
84
85
def test_cutoff_and_entrant_finished_in_first():
86
    entrant = get_test_entrant(status_value="finished", finished_at=time_ago(minutes=20), finish_time=timedelta(hours=1, minutes=30, microseconds=1), place=2)
@@ 39-52 (lines=14) @@
36
    assert qualifier.entrant_score == " "
37
    assert qualifier.par_text == " "
38
39
def test_cutoff_finished():
40
    entrant = get_test_entrant(status_value="in_progress")
41
    first_place = get_test_entrant(status_value="finished", finished_at=time_ago(minutes=20), finish_time=timedelta(hours=1, minutes=30, microseconds=1), place=1, users_used=[entrant.user.id])
42
    second_place = get_test_entrant(status_value="finished", finished_at=time_ago(minutes=15), finish_time=timedelta(hours=1, minutes=35, microseconds=1), place=2, users_used=[entrant.user.id, first_place.user.id])
43
    third_place = get_test_entrant(status_value="finished", finished_at=time_ago(minutes=10), finish_time=timedelta(hours=1, minutes=40, microseconds=1), place=3, users_used=[entrant.user.id, first_place.user.id, second_place.user.id])
44
    entrants = [ first_place, second_place, third_place, entrant ]
45
    for i in range(4, 20):
46
        users_used = (x.user for x in entrants)
47
        entrants.append(get_test_entrant(users_used=users_used))
48
    race = get_test_race(entrants=entrants)
49
    qualifier = get_test_qualifier()
50
    qualifier.update_qualifier_text(race, entrant.user.full_name)
51
    assert qualifier.entrant_score == " "
52
    assert qualifier.par_text == "1:35:00.0"
53
54
def test_cutoff_and_entrant_finished():
55
    entrant = get_test_entrant(status_value="finished", finished_at=time_ago(minutes=5), finish_time=timedelta(hours=1, minutes=45, microseconds=1))