36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
"""Тестируем отправку миссии."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from app.models.mission import Mission, MissionSubmission, SubmissionStatus
|
|
from app.models.user import User, UserRole
|
|
from app.services.mission import approve_submission
|
|
|
|
|
|
def test_approve_submission_rewards(db_session):
|
|
"""После одобрения пилот получает награды."""
|
|
|
|
mission = Mission(title="Сборка спутника", description="Практика", xp_reward=150, mana_reward=90)
|
|
user = User(
|
|
email="pilot@alabuga.space",
|
|
full_name="Пилот",
|
|
role=UserRole.PILOT,
|
|
hashed_password="hash",
|
|
)
|
|
|
|
db_session.add_all([mission, user])
|
|
db_session.flush()
|
|
|
|
submission = MissionSubmission(user_id=user.id, mission_id=mission.id)
|
|
db_session.add(submission)
|
|
db_session.commit()
|
|
db_session.refresh(submission)
|
|
db_session.refresh(user)
|
|
|
|
approve_submission(db_session, submission)
|
|
db_session.refresh(user)
|
|
|
|
assert user.xp == mission.xp_reward
|
|
assert user.mana == mission.mana_reward
|
|
assert submission.status == SubmissionStatus.APPROVED
|