Files
amap/backend/tests/fixtures.py
Julien Aldon 61cbbf0366
All checks were successful
Deploy Amap / deploy (push) Successful in 3m45s
add tests forn forms, products, productors
2026-02-25 16:39:12 +01:00

120 lines
3.3 KiB
Python

import pytest
from sqlmodel import Session
import src.models as models
import src.forms.service as forms_service
import src.productors.service as productors_service
import src.products.service as products_service
import src.users.service as users_service
import tests.factories.forms as forms_factory
import tests.factories.productors as productors_factory
import tests.factories.products as products_factory
import tests.factories.users as users_factory
@pytest.fixture
def productor(session: Session) -> models.ProductorPublic:
productor = productors_service.create_one(
session,
productors_factory.productor_create_factory(
name='test productor',
type='Légumineuses',
)
)
return productor
@pytest.fixture
def productors(session: Session) -> models.ProductorPublic:
productors = [
productors_service.create_one(
session,
productors_factory.productor_create_factory(
name='test productor 1',
type='Légumineuses',
)
),
productors_service.create_one(
session,
productors_factory.productor_create_factory(
name='test productor 2',
type='Légumes',
)
)
]
return productors
@pytest.fixture
def products(session: Session, productor: models.ProductorPublic) -> list[models.ProductPublic]:
products = [
products_service.create_one(
session,
products_factory.product_create_factory(
name='product 1 occasionnal',
type=models.ProductType.OCCASIONAL,
productor_id=productor.id
)
),
products_service.create_one(
session,
products_factory.product_create_factory(
name='product 2 recurrent',
type=models.ProductType.RECCURENT,
productor_id=productor.id
)
),
]
return products
@pytest.fixture
def user(session: Session) -> models.UserPublic:
user = users_service.create_one(
session,
users_factory.user_create_factory(
name='test user',
email='test@test.com',
role_names=['Légumineuses']
)
)
return user
@pytest.fixture
def referer(session: Session) -> models.UserPublic:
referer = users_service.create_one(
session,
users_factory.user_create_factory(
name='test referer',
email='test@test.com',
role_names=['Légumineuses'],
)
)
return referer
@pytest.fixture
def forms(
session: Session,
productor: models.ProductorPublic,
referer: models.UserPublic
) -> list[models.FormPublic]:
forms = [
forms_service.create_one(
session,
forms_factory.form_create_factory(
name='test form 1',
productor_id=productor.id,
referer_id=referer.id,
season='test season 1',
)
),
forms_service.create_one(
session,
forms_factory.form_create_factory(
name='test form 2',
productor_id=productor.id,
referer_id=referer.id,
season='test season 2',
)
)
]
return forms