72 lines
2.3 KiB
Python
72 lines
2.3 KiB
Python
import datetime
|
|
import app_db
|
|
from models.player_team_availability import PlayerTeamAvailability
|
|
from models.player_team_role import PlayerTeamRole
|
|
|
|
|
|
def test_get_schedule_7days_168elements(client, headers):
|
|
client.set_cookie("auth", "test_key")
|
|
response = client.get(
|
|
"/api/schedule/team?windowStart=0&teamId=1&windowSizeDays=7",
|
|
headers=headers)
|
|
assert len(response.json["playerAvailability"]["76561198248436608"]["availability"]) == 168
|
|
|
|
def test_find_consecutive_blocks_len_1():
|
|
from schedule import find_consecutive_blocks
|
|
|
|
blocks = find_consecutive_blocks([0, 1, 1, 1, 0])
|
|
assert len(blocks) == 1
|
|
|
|
def test_find_consecutive_blocks_len_2():
|
|
from schedule import find_consecutive_blocks
|
|
|
|
blocks = find_consecutive_blocks([0, 1, 0, 1, 0])
|
|
assert len(blocks) == 2
|
|
|
|
def test_find_consecutive_blocks_size_4():
|
|
from schedule import find_consecutive_blocks
|
|
|
|
blocks = find_consecutive_blocks([0, 2, 2, 2, 2])
|
|
print(blocks)
|
|
assert blocks[0][2] - blocks[0][1] == 4
|
|
|
|
def test_get_team_availability(client, headers):
|
|
client.set_cookie("auth", "test_key")
|
|
response = client.get(
|
|
"/api/schedule/team?windowStart=0&teamId=1&windowSizeDays=7",
|
|
headers=headers)
|
|
assert len(response.json["playerAvailability"]) == 1
|
|
|
|
def test_view_available_at_time_not_available(client, headers):
|
|
client.set_cookie("auth", "test_key")
|
|
response = client.get(
|
|
"/api/schedule/view-available?teamId=1&startTime=2024-10-01T00:00:00Z",
|
|
headers=headers)
|
|
assert len(response.json["players"]) == 0
|
|
|
|
def test_view_available_at_time_is_available(client, headers):
|
|
client.set_cookie("auth", "test_key")
|
|
|
|
pta = PlayerTeamAvailability(
|
|
player_team_id=1,
|
|
start_time=datetime.datetime(2024, 9, 1, 0, 0, tzinfo=datetime.timezone.utc),
|
|
end_time=datetime.datetime(2024, 10, 5, 2, 0, tzinfo=datetime.timezone.utc),
|
|
)
|
|
|
|
app_db.db.session.add(pta)
|
|
|
|
ptr = PlayerTeamRole(
|
|
player_team_id=1,
|
|
role=PlayerTeamRole.Role.Pyro,
|
|
is_main=True,
|
|
)
|
|
|
|
app_db.db.session.add(ptr)
|
|
app_db.db.session.commit()
|
|
|
|
response = client.get(
|
|
"/api/schedule/view-available?teamId=1&startTime=1727740800",
|
|
headers=headers)
|
|
print(response.json)
|
|
assert len(response.json["players"]) == 1
|