151 lines
4.3 KiB
Python
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
|
|
|