gmao/tests/integration/test_lot_presence.py

53 lines
1.7 KiB
Python
Raw Normal View History

from app_new.extensions import db
from app_new.core.models.equipment import Equipment
from app_new.core.models.maintenance import Lot
from app_new.lots.routes import index, set_presence
def test_empty_lot_is_visible_and_can_be_marked_absent(app):
with app.app_context():
lot = Lot(name="Ascenseurs")
db.session.add(lot)
db.session.commit()
lot_id = lot.id
with app.test_request_context('/lots/'):
rendered = index.__wrapped__()
assert 'Aucun équipement' in rendered
with app.test_request_context(
f'/lots/{lot_id}/presence',
method='POST',
data={'action': 'absent', 'absence_reason': 'Aucun ascenseur dans le college'},
):
response = set_presence.__wrapped__(lot_id)
assert response.status_code == 302
lot = db.session.get(Lot, lot_id)
assert lot.is_present is False
assert lot.absence_reason == 'Aucun ascenseur dans le college'
assert lot.needs_equipment_attention is False
def test_lot_with_equipment_cannot_be_marked_absent(app):
with app.app_context():
lot = Lot(name="Electricite")
equipment = Equipment(
name="Luminaires A01",
is_group=True,
quantity=10,
lot=lot,
status='en_service',
)
db.session.add_all([lot, equipment])
db.session.commit()
lot_id = lot.id
with app.test_request_context(
f'/lots/{lot_id}/presence',
method='POST',
data={'action': 'absent'},
):
response = set_presence.__wrapped__(lot_id)
assert response.status_code == 302
assert db.session.get(Lot, lot_id).is_present is True