Files
notytex/tests/conftest.py
2025-08-16 16:07:57 +02:00

60 lines
1.5 KiB
Python

import pytest
import tempfile
import os
from datetime import date
from app import create_app
from models import db, Student, StudentEnrollment
@pytest.fixture
def app():
db_fd, db_path = tempfile.mkstemp()
app = create_app('testing')
app.config.update({
'TESTING': True,
'SQLALCHEMY_DATABASE_URI': f'sqlite:///{db_path}',
'WTF_CSRF_ENABLED': False,
})
with app.app_context():
db.create_all()
yield app
db.drop_all()
os.close(db_fd)
os.unlink(db_path)
@pytest.fixture
def client(app):
return app.test_client()
def create_student_with_enrollment(first_name, last_name, class_group_id, email=None, enrollment_date=None):
"""
Helper pour créer un étudiant avec inscription temporelle.
Utilise le nouveau système temporel au lieu de l'ancien class_group_id.
"""
if enrollment_date is None:
enrollment_date = date(2023, 9, 1) # Date par défaut de rentrée
# Créer l'étudiant sans class_group_id
student = Student(first_name=first_name, last_name=last_name, email=email)
db.session.add(student)
db.session.flush() # Pour obtenir l'ID
# Créer l'inscription temporelle
enrollment = StudentEnrollment(
student_id=student.id,
class_group_id=class_group_id,
enrollment_date=enrollment_date
)
db.session.add(enrollment)
return student
@pytest.fixture
def runner(app):
return app.test_cli_runner()