60 lines
2.4 KiB
Python
60 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
|