Passed
Push — master ( b2363b...f4eeba )
by manny
01:38
created

races_for_testing.time_ago()   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 1
1
from typing import List
2
from datetime import datetime, timedelta, timezone
3
from models.race import Race, Goal, Status, Entrant
4
from users_for_testing import get_test_user, get_test_entrant
5
from categories_for_testing import get_test_race_category
6
7
def time_ago(**kwargs):
8
    return datetime.now(timezone.utc)-timedelta(**kwargs)
9
10
def get_test_race(status_value="in_progress", version=1, entrants_count=2, started_at=datetime.now(timezone.utc),
11
                start_delay=timedelta(seconds=-15), opened_at=datetime.now(timezone.utc), ended_at=None, 
12
                cancelled_at: datetime = None, entrant: Entrant = None, entrants: List[Entrant] = None) -> Race:
13
    if not entrants:
14
        entrants = []
15
        for i in range(0, entrants_count):
16
            e = get_test_entrant(entrants)
17
            entrants.append(e)
18
        entrant_count_finished = 0
19
    else:
20
        entrant_count_finished = list.count((list((x.status.value == "finished" for x in entrants))), True)
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable x does not seem to be defined.
Loading history...
21
    test_race= Race(name="",
22
                status=Status(value=status_value,
23
                              verbose_value="", help_text=""),
24
                category=get_test_race_category(),
25
                goal=Goal("", False),
26
                info="A test race",
27
                url="",
28
                data_url="",
29
                websocket_url="",
30
                websocket_bot_url="",
31
                websocket_oauth_url="",
32
                entrants_count=entrants_count,
33
                entrants_count_inactive=0,
34
                entrants_count_finished=entrant_count_finished,
35
                entrants=entrants,
36
                version=version,
37
                started_at=started_at,
38
                start_delay=start_delay,
39
                ended_at=ended_at,
40
                cancelled_at=cancelled_at,
41
                unlisted=False,
42
                time_limit=timedelta(days=1),
43
                streaming_required=True,
44
                auto_start=True,
45
                opened_by=get_test_user(),
46
                opened_at=opened_at,
47
                monitors=[],
48
                recordable=True,
49
                recorded=False,
50
                recorded_by=None,
51
                allow_comments=True,
52
                hide_comments=False,
53
                allow_midrace_chat=True
54
                )
55
    if entrant is not None:
56
        if not entrant in test_race.entrants:
57
            test_race.entrants.pop()
58
            test_race.entrants.append(entrant)
59
    return test_race
60