127 lines
3.0 KiB
Python
127 lines
3.0 KiB
Python
import datetime
|
|
from flask import Blueprint
|
|
import pytest
|
|
import app_db
|
|
from unittest.mock import patch
|
|
|
|
from models.auth_session import AuthSession
|
|
from models.event import Event
|
|
from models.player import Player
|
|
from models.player_event import PlayerEvent
|
|
from models.player_team import PlayerTeam
|
|
from models.player_team_role import PlayerTeamRole
|
|
from models.team import Team
|
|
from models.team_integration import TeamLogsTfIntegration
|
|
|
|
@pytest.fixture()
|
|
def app():
|
|
flask_app = app_db.create_app()
|
|
flask_app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///:memory:"
|
|
db = app_db.db
|
|
|
|
import login
|
|
import schedule
|
|
import team
|
|
import user
|
|
import events
|
|
import match
|
|
|
|
api = Blueprint("api", __name__, url_prefix="/api")
|
|
api.register_blueprint(login.api_login)
|
|
api.register_blueprint(schedule.api_schedule)
|
|
api.register_blueprint(team.api_team)
|
|
api.register_blueprint(user.api_user)
|
|
api.register_blueprint(events.api_events)
|
|
api.register_blueprint(match.api_match)
|
|
|
|
flask_app.register_blueprint(api)
|
|
|
|
db.init_app(flask_app)
|
|
with flask_app.app_context():
|
|
db.create_all()
|
|
populate_db(db)
|
|
|
|
yield flask_app
|
|
|
|
db.session.remove()
|
|
db.drop_all()
|
|
|
|
@pytest.fixture()
|
|
def client(app):
|
|
return app.test_client()
|
|
|
|
@pytest.fixture
|
|
def mock_get():
|
|
with patch("requests.get") as _mock_get:
|
|
yield _mock_get
|
|
|
|
@pytest.fixture
|
|
def mock_post():
|
|
with patch("requests.post") as _mock_post:
|
|
yield _mock_post
|
|
|
|
@pytest.fixture
|
|
def headers():
|
|
return {
|
|
"Content-Type": "application/json",
|
|
"Accept": "application/json",
|
|
"Cookie": "auth=test_key",
|
|
}
|
|
|
|
def populate_db(db):
|
|
player = Player(steam_id=76561198248436608, username="pyro from csgo")
|
|
team = Team(team_name="Team Pepeja", tz_timezone="America/New_York", minute_offset=30)
|
|
|
|
db.session.add(player)
|
|
db.session.add(team)
|
|
|
|
db.session.flush()
|
|
|
|
player_team = PlayerTeam(
|
|
player_id=player.steam_id,
|
|
team_id=team.id,
|
|
team_role=PlayerTeam.TeamRole.Player,
|
|
is_team_leader=True,
|
|
)
|
|
logs_tf_integration = TeamLogsTfIntegration(
|
|
team_id=team.id,
|
|
min_team_member_count=2,
|
|
)
|
|
|
|
db.session.add(player_team)
|
|
db.session.add(logs_tf_integration)
|
|
|
|
auth_session = AuthSession(
|
|
player_id=player.steam_id,
|
|
key="test_key",
|
|
)
|
|
|
|
db.session.add(auth_session)
|
|
|
|
event = Event(
|
|
team_id=team.id,
|
|
name="Test event",
|
|
description="Test description",
|
|
start_time=datetime.datetime.now(datetime.timezone.utc),
|
|
)
|
|
|
|
db.session.add(event)
|
|
db.session.flush()
|
|
|
|
player_event = PlayerEvent(
|
|
event_id=event.id,
|
|
player_id=76561198248436608,
|
|
player_team_role_id=1,
|
|
)
|
|
|
|
ptr = PlayerTeamRole(
|
|
player_team_id=player_team.id,
|
|
role=PlayerTeamRole.Role.PocketSoldier,
|
|
is_main=True,
|
|
)
|
|
|
|
db.session.add(player_event)
|
|
db.session.add(ptr)
|
|
|
|
db.session.commit()
|