gmao/tests/integration/test_stabilization_lot1.py

59 lines
2.4 KiB
Python

from datetime import datetime
from app_new.extensions import db
def test_utc_datetime_is_displayed_in_college_timezone(app):
with app.app_context():
rendered = app.jinja_env.filters['datetime_fmt'](datetime(2026, 8, 14, 22, 30))
assert rendered == '15/08/2026 00:30'
def test_general_intervention_does_not_use_an_unrelated_equipment(authenticated_client, app):
response = authenticated_client.post('/interventions/new', data={
'title': 'Intervention générale de test',
'equipment_id': 'divers',
'priority': 'normale',
'intervention_type': 'administratif',
})
assert response.status_code == 302
from app_new.core.models.maintenance import Intervention
with app.app_context():
intervention = Intervention.query.filter_by(title='Intervention générale de test').one()
assert intervention.equipment_id is None
db.session.delete(intervention)
db.session.commit()
def test_training_crud_uses_real_model_fields(authenticated_client, app):
response = authenticated_client.post('/training/new', data={
'title': 'Formation reçue par mail',
'start_date': '2026-09-10',
'end_date': '2026-09-11',
'location': 'DSDEN',
})
assert response.status_code == 302
from app_new.core.models.planning import Training, TrainingParticipant
with app.app_context():
training = Training.query.filter_by(name='Formation reçue par mail').one()
training_id = training.id
assert authenticated_client.get(f'/training/{training_id}').status_code == 200
assert authenticated_client.post(f'/training/{training_id}/register').status_code == 302
with app.app_context():
participant = TrainingParticipant.query.filter_by(training_id=training_id).one()
assert participant.is_confirmed is True
db.session.delete(participant)
db.session.delete(db.session.get(Training, training_id))
db.session.commit()
def test_previously_broken_fixed_pages_respond(authenticated_client):
assert authenticated_client.get('/admin/room-types/new').status_code == 302
assert authenticated_client.get('/planning/availability/leave/new').status_code == 200
assert authenticated_client.get('/room-types/new').status_code == 200
assert authenticated_client.get('/yeastar/config').status_code == 200
assert authenticated_client.get('/yeastar/api/extensions').status_code == 503