48 lines
1.9 KiB
Python
48 lines
1.9 KiB
Python
|
|
from uuid import uuid4
|
|||
|
|
|
|||
|
|
from app_new.extensions import db
|
|||
|
|
from app_new.core.models.equipment import EquipmentCategory
|
|||
|
|
from app_new.core.models.maintenance import Lot
|
|||
|
|
|
|||
|
|
|
|||
|
|
def test_quick_lot_is_created_in_selected_category(authenticated_client, app):
|
|||
|
|
with app.app_context():
|
|||
|
|
category = EquipmentCategory(name=f'Catégorie rapide {uuid4().hex[:6]}')
|
|||
|
|
db.session.add(category)
|
|||
|
|
db.session.commit()
|
|||
|
|
category_id = category.id
|
|||
|
|
response = authenticated_client.post('/wizard/api/lots', json={
|
|||
|
|
'name': 'Lot créé pendant l’inventaire',
|
|||
|
|
'category_id': category_id,
|
|||
|
|
})
|
|||
|
|
assert response.status_code == 201
|
|||
|
|
payload = response.get_json()['lot']
|
|||
|
|
assert payload['category_id'] == category_id
|
|||
|
|
with app.app_context():
|
|||
|
|
lot = db.session.get(Lot, payload['id'])
|
|||
|
|
assert lot.category_id == category_id
|
|||
|
|
assert lot.is_present is True
|
|||
|
|
|
|||
|
|
|
|||
|
|
def test_quick_lot_duplicate_returns_existing_lot(authenticated_client, app):
|
|||
|
|
with app.app_context():
|
|||
|
|
category = EquipmentCategory(name=f'Catégorie doublon {uuid4().hex[:6]}')
|
|||
|
|
lot = Lot(name='Lot identique', category=category)
|
|||
|
|
db.session.add_all([category, lot])
|
|||
|
|
db.session.commit()
|
|||
|
|
response = authenticated_client.post('/wizard/api/lots', json={
|
|||
|
|
'name': 'lot IDENTIQUE', 'category_id': category.id,
|
|||
|
|
})
|
|||
|
|
lot_id = lot.id
|
|||
|
|
assert response.status_code == 409
|
|||
|
|
assert response.get_json()['lot']['id'] == lot_id
|
|||
|
|
|
|||
|
|
|
|||
|
|
def test_equipment_forms_offer_category_bound_lot_creation(authenticated_client):
|
|||
|
|
wizard = authenticated_client.get('/wizard/equipments')
|
|||
|
|
advanced = authenticated_client.get('/equipments/create?advanced=1')
|
|||
|
|
assert wizard.status_code == 200
|
|||
|
|
assert advanced.status_code == 200
|
|||
|
|
assert 'Nouveau lot dans cette catégorie'.encode() in wizard.data
|
|||
|
|
assert 'Créer un lot dans cette catégorie'.encode() in advanced.data
|