/
Yan_Yu
/
Nereus
Обзор
Документация
Войти
/
Yan_Yu
/
Nereus
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
working
src/tests/test_database.py
156 строк
4 KB
yan
init: scaffold Nereus AI tutoring platform with multi-agent orchestration
02 авг 2026, 18:25
02 авг 2026, 18:25
13d60da
Код
Авторство
О чём код?
"""Tests for database models and session.""" import pytest from src.database.models import User, Session, Roadmap, Block, Progress, Assessment from src.database.models import SessionStatus, BlockStatus, AssessmentType class TestUserModel: """Tests for the User model.""" def test_create_user(self, db_session, sample_user_data): """Test creating a new user.""" user = User(**sample_user_data) db_session.add(user) db_session.commit() db_session.refresh(user) assert user.id is not None assert user.name == sample_user_data["name"] assert user.email == sample_user_data["email"] def test_user_created_at_is_set(self, db_session, sample_user_data): """Test that created_at is automatically set.""" user = User(**sample_user_data) db_session.add(user) db_session.commit() db_session.refresh(user) assert user.created_at is not None class TestSessionModel: """Tests for the Session model.""" def test_create_session(self, db_session, sample_user_data): """Test creating a session linked to a user.""" user = User(**sample_user_data) db_session.add(user) db_session.commit() session = Session(user_id=user.id) db_session.add(session) db_session.commit() db_session.refresh(session) assert session.id is not None assert session.user_id == user.id assert session.status == SessionStatus.ACTIVE class TestRoadmapModel: """Tests for the Roadmap model.""" def test_create_roadmap(self, db_session, sample_user_data): """Test creating a roadmap linked to a session.""" user = User(**sample_user_data) db_session.add(user) db_session.commit() session = Session(user_id=user.id) db_session.add(session) db_session.commit() roadmap = Roadmap( session_id=session.id, skill_name="Python", total_blocks=4, ) db_session.add(roadmap) db_session.commit() db_session.refresh(roadmap) assert roadmap.id is not None assert roadmap.skill_name == "Python" assert roadmap.total_blocks == 4 class TestBlockModel: """Tests for the Block model.""" def test_create_block(self, db_session, sample_user_data): """Test creating a block linked to a roadmap.""" user = User(**sample_user_data) db_session.add(user) db_session.commit() session = Session(user_id=user.id) db_session.add(session) db_session.commit() roadmap = Roadmap( session_id=session.id, skill_name="Python", total_blocks=4, ) db_session.add(roadmap) db_session.commit() block = Block( roadmap_id=roadmap.id, title="Basics", description="Introduction to Python", order_index=0, ) db_session.add(block) db_session.commit() db_session.refresh(block) assert block.id is not None assert block.title == "Basics" assert block.status == BlockStatus.PENDING class TestAssessmentModel: """Tests for the Assessment model.""" def test_create_assessment(self, db_session, sample_user_data): """Test creating an assessment.""" user = User(**sample_user_data) db_session.add(user) db_session.commit() session = Session(user_id=user.id) db_session.add(session) db_session.commit() roadmap = Roadmap( session_id=session.id, skill_name="Python", total_blocks=4, ) db_session.add(roadmap) db_session.commit() block = Block( roadmap_id=roadmap.id, title="Basics", order_index=0, ) db_session.add(block) db_session.commit() assessment = Assessment( block_id=block.id, session_id=session.id, type=AssessmentType.THEORY, score=0.85, feedback="Good work!", ) db_session.add(assessment) db_session.commit() db_session.refresh(assessment) assert assessment.id is not None assert assessment.score == 0.85 assert assessment.type == AssessmentType.THEORY