availabili.tf/backend-flask/tests/test_event.py

151 lines
4.3 KiB
Python

import datetime
from models.event import Event
from app_db import db
from models.player import Player
from models.player_event import PlayerEvent
from models.player_team import PlayerTeam
def test_get_event(client, headers):
client.set_cookie("auth", "test_key")
response = client.get(
"/api/events/1",
headers=headers)
assert response.json["name"] == "Test event"
def test_get_team_events(client, headers):
client.set_cookie("auth", "test_key")
response = client.get(
"/api/events/team/id/1",
headers=headers)
assert len(response.json) == 1
def test_create_event(client, headers):
client.set_cookie("auth", "test_key")
response = client.post(
"/api/events/team/id/1",
json={
"name": "New Event",
"description": "Test event description",
"startTime": 0,
"playerRoles": [
{
"player": {
"steamId": "76561198248436608",
"username": "pyro from csgo",
},
"role": {
"role": "Pyro",
"isMain": False,
},
}
]
},
headers=headers)
assert response.json["name"] == "New Event"
def test_update_event(client, headers):
client.set_cookie("auth", "test_key")
response = client.patch(
"/api/events/1",
json={
"name": "Updated Event",
"description": "Updated description",
"startTime": 0,
"playerRoles": [],
},
headers=headers)
print(response)
assert response.json["name"] == "Updated Event"
def test_delete_event(client, headers):
client.set_cookie("auth", "test_key")
response = client.delete(
"/api/events/1",
headers=headers)
assert db.session.query(Event).where(Event.id == 1).one_or_none() is None
def test_get_maximum_matching_1_player(app):
event = db.session.query(Event).first()
assert event.get_maximum_matching() == 1
def test_get_maximum_matching_no_players(app):
event = Event(
team_id=1,
name="New Event",
start_time=datetime.datetime.now(datetime.timezone.utc),
)
assert event.get_maximum_matching() == 0
def test_get_discord_content(app):
def populate_team():
player2 = Player(steam_id=76561198248436609, username="pyro from cs2")
player3 = Player(steam_id=76561198248436610, username="pyro from cs3")
player4 = Player(steam_id=76561198248436611, username="pyro from cs4")
db.session.add(player2)
db.session.add(player3)
db.session.add(player4)
db.session.flush()
player_team2 = PlayerTeam(
player_id=player2.steam_id,
team_id=1,
)
player_team3 = PlayerTeam(
player_id=player3.steam_id,
team_id=1,
)
player_team4 = PlayerTeam(
player_id=player4.steam_id,
team_id=1,
)
db.session.add(player_team2)
db.session.add(player_team3)
db.session.add(player_team4)
db.session.commit()
populate_team()
event = Event(
team_id=1,
name="New Event",
start_time=datetime.datetime.now(datetime.timezone.utc),
)
db.session.add(event)
db.session.flush()
event_player = PlayerEvent(
event_id=event.id,
player_id=76561198248436608,
player_team_role_id=1,
has_confirmed=True,
)
event_player2 = PlayerEvent(
event_id=event.id,
player_id=76561198248436609,
player_team_role_id=None,
has_confirmed=True,
)
event_player3 = PlayerEvent(
event_id=event.id,
player_id=76561198248436610,
player_team_role_id=None,
has_confirmed=False,
)
event_player4 = PlayerEvent(
event_id=event.id,
player_id=76561198248436611,
player_team_role_id=None,
has_confirmed=False,
)
db.session.add(event_player)
db.session.add(event_player2)
db.session.add(event_player3)
db.session.add(event_player4)
db.session.commit()
content = event.get_discord_content()
assert "✅ pyro from csgo" in content
assert "✅ pyro from cs2" in content
assert "⌛ pyro from cs3, pyro from cs4" in content