fix test format

This commit is contained in:
Julien Aldon
2026-03-02 16:33:52 +01:00
parent 5dd9e19877
commit 0e48d1bbaa
20 changed files with 751 additions and 436 deletions

View File

@@ -9,32 +9,36 @@ import src.models as models
from src.database import get_session from src.database import get_session
from src.auth.auth import get_current_user from src.auth.auth import get_current_user
@pytest.fixture @pytest.fixture
def mock_session(mocker): def mock_session(mocker):
session = mocker.Mock() session = mocker.Mock()
def override(): def override():
return session return session
app.dependency_overrides[get_session] = override app.dependency_overrides[get_session] = override
yield session yield session
app.dependency_overrides.clear() app.dependency_overrides.clear()
@pytest.fixture @pytest.fixture
def mock_user(): def mock_user():
user = models.User(id=1, name='test user', email='test@user.com') user = models.User(id=1, name='test user', email='test@user.com')
def override(): def override():
return user return user
app.dependency_overrides[get_current_user] = override app.dependency_overrides[get_current_user] = override
yield user yield user
app.dependency_overrides.clear() app.dependency_overrides.clear()
@pytest.fixture @pytest.fixture
def client(): def client():
return TestClient(app) return TestClient(app)
@pytest.fixture(name='session') @pytest.fixture(name='session')
def session_fixture(): def session_fixture():
engine = create_engine( engine = create_engine(
@@ -55,4 +59,4 @@ def session_fixture():
transaction.rollback() transaction.rollback()
session.close() session.close()
connection.close() connection.close()
engine.dispose() engine.dispose()

View File

@@ -2,9 +2,11 @@ import src.models as models
import tests.factories.contracts as contract_factory import tests.factories.contracts as contract_factory
import tests.factories.products as product_factory import tests.factories.products as product_factory
def contract_product_factory(**kwargs): def contract_product_factory(**kwargs):
contract = contract_factory.contract_factory(id=1) contract = contract_factory.contract_factory(id=1)
product = product_factory.product_public_factory(id=1, type=models.ProductType.RECCURENT) product = product_factory.product_public_factory(
id=1, type=models.ProductType.RECCURENT)
data = dict( data = dict(
product_id=1, product_id=1,
shipment_id=1, shipment_id=1,
@@ -16,6 +18,7 @@ def contract_product_factory(**kwargs):
data.update(kwargs) data.update(kwargs)
return models.ContractProduct(**data) return models.ContractProduct(**data)
def contract_product_public_factory(**kwargs): def contract_product_public_factory(**kwargs):
contract = contract_factory.contract_factory(id=1) contract = contract_factory.contract_factory(id=1)
product = product_factory.product_public_factory(id=1) product = product_factory.product_public_factory(id=1)
@@ -31,6 +34,7 @@ def contract_product_public_factory(**kwargs):
data.update(kwargs) data.update(kwargs)
return models.ContractProductPublic(**data) return models.ContractProductPublic(**data)
def contract_product_create_factory(**kwargs): def contract_product_create_factory(**kwargs):
data = dict( data = dict(
product_id=1, product_id=1,
@@ -40,6 +44,7 @@ def contract_product_create_factory(**kwargs):
data.update(kwargs) data.update(kwargs)
return models.ContractProductCreate(**data) return models.ContractProductCreate(**data)
def contract_product_update_factory(**kwargs): def contract_product_update_factory(**kwargs):
data = dict( data = dict(
product_id=1, product_id=1,
@@ -49,6 +54,7 @@ def contract_product_update_factory(**kwargs):
data.update(kwargs) data.update(kwargs)
return models.ContractProductUpdate(**data) return models.ContractProductUpdate(**data)
def contract_product_body_factory(**kwargs): def contract_product_body_factory(**kwargs):
data = dict( data = dict(
product_id=1, product_id=1,
@@ -56,4 +62,4 @@ def contract_product_body_factory(**kwargs):
quantity=1, quantity=1,
) )
data.update(kwargs) data.update(kwargs)
return data return data

View File

@@ -1,6 +1,7 @@
import src.models as models import src.models as models
from .forms import form_factory from .forms import form_factory
def contract_factory(**kwargs): def contract_factory(**kwargs):
data = dict( data = dict(
id=1, id=1,
@@ -17,6 +18,7 @@ def contract_factory(**kwargs):
data.update(kwargs) data.update(kwargs)
return models.Contract(**data) return models.Contract(**data)
def contract_public_factory(**kwargs): def contract_public_factory(**kwargs):
data = dict( data = dict(
id=1, id=1,
@@ -33,6 +35,7 @@ def contract_public_factory(**kwargs):
data.update(kwargs) data.update(kwargs)
return models.ContractPublic(**data) return models.ContractPublic(**data)
def contract_create_factory(**kwargs): def contract_create_factory(**kwargs):
data = dict( data = dict(
firstname="test", firstname="test",
@@ -48,6 +51,7 @@ def contract_create_factory(**kwargs):
data.update(kwargs) data.update(kwargs)
return models.ContractCreate(**data) return models.ContractCreate(**data)
def contract_update_factory(**kwargs): def contract_update_factory(**kwargs):
data = dict( data = dict(
firstname="test", firstname="test",
@@ -60,6 +64,7 @@ def contract_update_factory(**kwargs):
data.update(kwargs) data.update(kwargs)
return models.ContractUpdate(**data) return models.ContractUpdate(**data)
def contract_body_factory(**kwargs): def contract_body_factory(**kwargs):
data = dict( data = dict(
firstname="test", firstname="test",
@@ -73,4 +78,4 @@ def contract_body_factory(**kwargs):
form_id=1 form_id=1
) )
data.update(kwargs) data.update(kwargs)
return data return data

View File

@@ -1,9 +1,9 @@
import src.models as models import src.models as models
from .productors import productor_public_factory from .productors import productor_public_factory
from .shipments import shipment_public_factory
from .users import user_factory from .users import user_factory
import datetime import datetime
def form_factory(**kwargs): def form_factory(**kwargs):
data = dict( data = dict(
id=1, id=1,
@@ -21,7 +21,7 @@ def form_factory(**kwargs):
) )
data.update(kwargs) data.update(kwargs)
return models.Form(**data) return models.Form(**data)
def form_body_factory(**kwargs): def form_body_factory(**kwargs):
data = dict( data = dict(
@@ -37,6 +37,7 @@ def form_body_factory(**kwargs):
data.update(kwargs) data.update(kwargs)
return data return data
def form_create_factory(**kwargs): def form_create_factory(**kwargs):
data = dict( data = dict(
name='form 1', name='form 1',
@@ -51,6 +52,7 @@ def form_create_factory(**kwargs):
data.update(kwargs) data.update(kwargs)
return models.FormCreate(**data) return models.FormCreate(**data)
def form_update_factory(**kwargs): def form_update_factory(**kwargs):
data = dict( data = dict(
name='form 1', name='form 1',
@@ -65,7 +67,8 @@ def form_update_factory(**kwargs):
data.update(kwargs) data.update(kwargs)
return models.FormUpdate(**data) return models.FormUpdate(**data)
def form_public_factory(form=None, shipments=[],**kwargs):
def form_public_factory(form=None, shipments=[], **kwargs):
data = dict( data = dict(
id=1, id=1,
name='form 1', name='form 1',
@@ -81,4 +84,4 @@ def form_public_factory(form=None, shipments=[],**kwargs):
productor=productor_public_factory(), productor=productor_public_factory(),
) )
data.update(kwargs) data.update(kwargs)
return models.FormPublic(**data) return models.FormPublic(**data)

View File

@@ -1,5 +1,6 @@
import src.models as models import src.models as models
def productor_factory(**kwargs): def productor_factory(**kwargs):
data = dict( data = dict(
id=1, id=1,
@@ -10,6 +11,7 @@ def productor_factory(**kwargs):
data.update(kwargs) data.update(kwargs)
return models.Productor(**data) return models.Productor(**data)
def productor_public_factory(**kwargs): def productor_public_factory(**kwargs):
data = dict( data = dict(
id=1, id=1,
@@ -22,6 +24,7 @@ def productor_public_factory(**kwargs):
data.update(kwargs) data.update(kwargs)
return models.ProductorPublic(**data) return models.ProductorPublic(**data)
def productor_create_factory(**kwargs): def productor_create_factory(**kwargs):
data = dict( data = dict(
id=1, id=1,
@@ -34,6 +37,7 @@ def productor_create_factory(**kwargs):
data.update(kwargs) data.update(kwargs)
return models.ProductorCreate(**data) return models.ProductorCreate(**data)
def productor_update_factory(**kwargs): def productor_update_factory(**kwargs):
data = dict( data = dict(
id=1, id=1,
@@ -46,6 +50,7 @@ def productor_update_factory(**kwargs):
data.update(kwargs) data.update(kwargs)
return models.ProductorUpdate(**data) return models.ProductorUpdate(**data)
def productor_body_factory(**kwargs): def productor_body_factory(**kwargs):
data = dict( data = dict(
id=1, id=1,
@@ -56,4 +61,4 @@ def productor_body_factory(**kwargs):
payment_methods=[], payment_methods=[],
) )
data.update(kwargs) data.update(kwargs)
return data return data

View File

@@ -1,6 +1,6 @@
import src.models as models import src.models as models
from .productors import productor_factory from .productors import productor_factory
from .shipments import shipment_factory
def product_body_factory(**kwargs): def product_body_factory(**kwargs):
data = dict( data = dict(
@@ -16,6 +16,7 @@ def product_body_factory(**kwargs):
data.update(kwargs) data.update(kwargs)
return data return data
def product_create_factory(**kwargs): def product_create_factory(**kwargs):
data = dict( data = dict(
name='product test 1', name='product test 1',
@@ -30,6 +31,7 @@ def product_create_factory(**kwargs):
data.update(kwargs) data.update(kwargs)
return models.ProductCreate(**data) return models.ProductCreate(**data)
def product_update_factory(**kwargs): def product_update_factory(**kwargs):
data = dict( data = dict(
name='product test 1', name='product test 1',
@@ -44,7 +46,8 @@ def product_update_factory(**kwargs):
data.update(kwargs) data.update(kwargs)
return models.ProductUpdate(**data) return models.ProductUpdate(**data)
def product_public_factory(productor=None, shipments=[],**kwargs):
def product_public_factory(productor=None, shipments=[], **kwargs):
if productor is None: if productor is None:
productor = productor_factory() productor = productor_factory()
data = dict( data = dict(
@@ -61,4 +64,4 @@ def product_public_factory(productor=None, shipments=[],**kwargs):
shipments=shipments, shipments=shipments,
) )
data.update(kwargs) data.update(kwargs)
return models.ProductPublic(**data) return models.ProductPublic(**data)

View File

@@ -1,6 +1,7 @@
import src.models as models import src.models as models
import datetime import datetime
def shipment_factory(**kwargs): def shipment_factory(**kwargs):
data = dict( data = dict(
id=1, id=1,
@@ -11,6 +12,7 @@ def shipment_factory(**kwargs):
data.update(kwargs) data.update(kwargs)
return models.Shipment(**data) return models.Shipment(**data)
def shipment_public_factory(**kwargs): def shipment_public_factory(**kwargs):
data = dict( data = dict(
id=1, id=1,
@@ -23,6 +25,7 @@ def shipment_public_factory(**kwargs):
data.update(kwargs) data.update(kwargs)
return models.ShipmentPublic(**data) return models.ShipmentPublic(**data)
def shipment_create_factory(**kwargs): def shipment_create_factory(**kwargs):
data = dict( data = dict(
name="test shipment", name="test shipment",
@@ -33,6 +36,7 @@ def shipment_create_factory(**kwargs):
data.update(kwargs) data.update(kwargs)
return models.ShipmentCreate(**data) return models.ShipmentCreate(**data)
def shipment_update_factory(**kwargs): def shipment_update_factory(**kwargs):
data = dict( data = dict(
name="test shipment", name="test shipment",
@@ -43,6 +47,7 @@ def shipment_update_factory(**kwargs):
data.update(kwargs) data.update(kwargs)
return models.ShipmentUpdate(**data) return models.ShipmentUpdate(**data)
def shipment_body_factory(**kwargs): def shipment_body_factory(**kwargs):
data = dict( data = dict(
name="test shipment", name="test shipment",
@@ -50,4 +55,4 @@ def shipment_body_factory(**kwargs):
date="2025-10-10", date="2025-10-10",
) )
data.update(kwargs) data.update(kwargs)
return data return data

View File

@@ -1,5 +1,6 @@
import src.models as models import src.models as models
def user_factory(**kwargs): def user_factory(**kwargs):
data = dict( data = dict(
id=1, id=1,
@@ -10,6 +11,7 @@ def user_factory(**kwargs):
data.update(kwargs) data.update(kwargs)
return models.User(**data) return models.User(**data)
def user_public_factory(**kwargs): def user_public_factory(**kwargs):
data = dict( data = dict(
id=1, id=1,
@@ -20,6 +22,7 @@ def user_public_factory(**kwargs):
data.update(kwargs) data.update(kwargs)
return models.UserPublic(**data) return models.UserPublic(**data)
def user_create_factory(**kwargs): def user_create_factory(**kwargs):
data = dict( data = dict(
name="test user", name="test user",
@@ -29,6 +32,7 @@ def user_create_factory(**kwargs):
data.update(kwargs) data.update(kwargs)
return models.UserCreate(**data) return models.UserCreate(**data)
def user_update_factory(**kwargs): def user_update_factory(**kwargs):
data = dict( data = dict(
name="test user", name="test user",
@@ -38,6 +42,7 @@ def user_update_factory(**kwargs):
data.update(kwargs) data.update(kwargs)
return models.UserUpdate(**data) return models.UserUpdate(**data)
def user_body_factory(**kwargs): def user_body_factory(**kwargs):
data = dict( data = dict(
name="test user", name="test user",
@@ -45,4 +50,4 @@ def user_body_factory(**kwargs):
role_names=[], role_names=[],
) )
data.update(kwargs) data.update(kwargs)
return data return data

View File

@@ -14,6 +14,7 @@ import tests.factories.productors as productors_factory
import tests.factories.products as products_factory import tests.factories.products as products_factory
import tests.factories.users as users_factory import tests.factories.users as users_factory
@pytest.fixture @pytest.fixture
def productor(session: Session) -> models.ProductorPublic: def productor(session: Session) -> models.ProductorPublic:
productor = productors_service.create_one( productor = productors_service.create_one(
@@ -46,8 +47,10 @@ def productors(session: Session) -> models.ProductorPublic:
] ]
return productors return productors
@pytest.fixture @pytest.fixture
def products(session: Session, productor: models.ProductorPublic) -> list[models.ProductPublic]: def products(session: Session,
productor: models.ProductorPublic) -> list[models.ProductPublic]:
products = [ products = [
products_service.create_one( products_service.create_one(
session, session,
@@ -68,65 +71,70 @@ def products(session: Session, productor: models.ProductorPublic) -> list[models
] ]
return products return products
@pytest.fixture @pytest.fixture
def user(session: Session) -> models.UserPublic: def user(session: Session) -> models.UserPublic:
user = users_service.create_one( user = users_service.create_one(
session, session,
users_factory.user_create_factory( users_factory.user_create_factory(
name='test user', name='test user',
email='test@test.com', email='test@test.com',
role_names=['Légumineuses'] role_names=['Légumineuses']
) )
) )
return user return user
@pytest.fixture @pytest.fixture
def users(session: Session) -> list[models.UserPublic]: def users(session: Session) -> list[models.UserPublic]:
users = [ users = [
users_service.create_one( users_service.create_one(
session, session,
users_factory.user_create_factory( users_factory.user_create_factory(
name='test user 1 (admin)', name='test user 1 (admin)',
email='test1@test.com', email='test1@test.com',
role_names=['Légumineuses', 'Légumes', 'Oeufs', 'Porc-Agneau', 'Vin', 'Fruits'] role_names=[
) 'Légumineuses',
), 'Légumes',
'Oeufs',
'Porc-Agneau',
'Vin',
'Fruits'])),
users_service.create_one( users_service.create_one(
session, session,
users_factory.user_create_factory( users_factory.user_create_factory(
name='test user 2', name='test user 2',
email='test2@test.com', email='test2@test.com',
role_names=['Légumineuses'] role_names=['Légumineuses'])),
)
),
users_service.create_one( users_service.create_one(
session, session,
users_factory.user_create_factory( users_factory.user_create_factory(
name='test user 3', name='test user 3',
email='test3@test.com', email='test3@test.com',
role_names=['Porc-Agneau'] role_names=['Porc-Agneau']))]
)
)
]
return users return users
@pytest.fixture @pytest.fixture
def referer(session: Session) -> models.UserPublic: def referer(session: Session) -> models.UserPublic:
referer = users_service.create_one( referer = users_service.create_one(
session, session,
users_factory.user_create_factory( users_factory.user_create_factory(
name='test referer', name='test referer',
email='test@test.com', email='test@test.com',
role_names=['Légumineuses'], role_names=['Légumineuses'],
) )
) )
return referer return referer
@pytest.fixture @pytest.fixture
def shipments(session: Session, forms: list[models.FormPublic], products: list[models.ProductPublic]): def shipments(session: Session,
forms: list[models.FormPublic],
products: list[models.ProductPublic]):
shipments = [ shipments = [
shipments_service.create_one( shipments_service.create_one(
session, session,
shipments_factory.shipment_create_factory( shipments_factory.shipment_create_factory(
name='test shipment 1', name='test shipment 1',
date=datetime.date(2025, 10, 10), date=datetime.date(2025, 10, 10),
@@ -135,7 +143,7 @@ def shipments(session: Session, forms: list[models.FormPublic], products: list[m
) )
), ),
shipments_service.create_one( shipments_service.create_one(
session, session,
shipments_factory.shipment_create_factory( shipments_factory.shipment_create_factory(
name='test shipment 2', name='test shipment 2',
date=datetime.date(2025, 11, 10), date=datetime.date(2025, 11, 10),
@@ -146,15 +154,16 @@ def shipments(session: Session, forms: list[models.FormPublic], products: list[m
] ]
return shipments return shipments
@pytest.fixture @pytest.fixture
def forms( def forms(
session: Session, session: Session,
productor: models.ProductorPublic, productor: models.ProductorPublic,
referer: models.UserPublic referer: models.UserPublic
) -> list[models.FormPublic]: ) -> list[models.FormPublic]:
forms = [ forms = [
forms_service.create_one( forms_service.create_one(
session, session,
forms_factory.form_create_factory( forms_factory.form_create_factory(
name='test form 1', name='test form 1',
productor_id=productor.id, productor_id=productor.id,
@@ -163,7 +172,7 @@ def forms(
) )
), ),
forms_service.create_one( forms_service.create_one(
session, session,
forms_factory.form_create_factory( forms_factory.form_create_factory(
name='test form 2', name='test form 2',
productor_id=productor.id, productor_id=productor.id,
@@ -173,4 +182,3 @@ def forms(
) )
] ]
return forms return forms

View File

@@ -8,6 +8,7 @@ import tests.factories.contract_products as contract_products_factory
from fastapi.exceptions import HTTPException from fastapi.exceptions import HTTPException
class TestContracts: class TestContracts:
def test_get_all(self, client, mocker, mock_session, mock_user): def test_get_all(self, client, mocker, mock_session, mock_user):
mock_results = [ mock_results = [
@@ -31,6 +32,7 @@ class TestContracts:
mock_user, mock_user,
[], [],
) )
def test_get_all_filters(self, client, mocker, mock_session, mock_user): def test_get_all_filters(self, client, mocker, mock_session, mock_user):
mock_results = [ mock_results = [
contract_factory.contract_public_factory(id=2), contract_factory.contract_public_factory(id=2),
@@ -52,10 +54,15 @@ class TestContracts:
['form test'], ['form test'],
) )
def test_get_all_unauthorized(self, client, mocker, mock_session, mock_user): def test_get_all_unauthorized(
self,
client,
mocker,
mock_session,
mock_user):
def unauthorized(): def unauthorized():
raise HTTPException(status_code=401) raise HTTPException(status_code=401)
app.dependency_overrides[get_current_user] = unauthorized app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.contracts.service.get_all') mock = mocker.patch('src.contracts.service.get_all')
@@ -74,7 +81,7 @@ class TestContracts:
'get_one', 'get_one',
return_value=mock_result return_value=mock_result
) )
mock_is_allowed = mocker.patch.object( mocker.patch.object(
service, service,
'is_allowed', 'is_allowed',
return_value=True return_value=True
@@ -88,7 +95,7 @@ class TestContracts:
mock_session, mock_session,
2 2
) )
def test_get_one_notfound(self, client, mocker, mock_session, mock_user): def test_get_one_notfound(self, client, mocker, mock_session, mock_user):
mock_result = None mock_result = None
mock = mocker.patch.object( mock = mocker.patch.object(
@@ -97,23 +104,27 @@ class TestContracts:
return_value=mock_result return_value=mock_result
) )
mock_is_allowed = mocker.patch.object( mocker.patch.object(
service, service,
'is_allowed', 'is_allowed',
return_value=True return_value=True
) )
response = client.get('/api/contracts/2') response = client.get('/api/contracts/2')
response_data = response.json()
assert response.status_code == 404 assert response.status_code == 404
mock.assert_called_once_with( mock.assert_called_once_with(
mock_session, mock_session,
2 2
) )
def test_get_one_unauthorized(self, client, mocker, mock_session, mock_user): def test_get_one_unauthorized(
self,
client,
mocker,
mock_session,
mock_user):
def unauthorized(): def unauthorized():
raise HTTPException(status_code=401) raise HTTPException(status_code=401)
app.dependency_overrides[get_current_user] = unauthorized app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.contracts.service.get_one') mock = mocker.patch('src.contracts.service.get_one')
@@ -127,37 +138,53 @@ class TestContracts:
def test_create_one(self, client, mocker, mock_session, mock_user): def test_create_one(self, client, mocker, mock_session, mock_user):
contract_body = contract_factory.contract_body_factory( contract_body = contract_factory.contract_body_factory(
products=[ products=[
contract_products_factory.contract_product_body_factory(product_id=1), contract_products_factory.contract_product_body_factory(
contract_products_factory.contract_product_body_factory(product_id=2), product_id=1
contract_products_factory.contract_product_body_factory(product_id=3) ),
contract_products_factory.contract_product_body_factory(
product_id=2
),
contract_products_factory.contract_product_body_factory(
product_id=3
)
], ],
cheques=[{'name': '123123', 'value': '100'}] cheques=[{'name': '123123', 'value': '100'}]
) )
contract_result = contract_factory.contract_factory( contract_result = contract_factory.contract_factory(
products=[ products=[
contract_products_factory.contract_product_factory(product_id=1), contract_products_factory.contract_product_factory(
contract_products_factory.contract_product_factory(product_id=2), product_id=1
contract_products_factory.contract_product_factory(product_id=3) ),
contract_products_factory.contract_product_factory(
product_id=2
),
contract_products_factory.contract_product_factory(
product_id=3
)
], ],
form=form_factory.form_factory(), form=form_factory.form_factory(),
cheques=[models.Cheque(name='123123', value='100')] cheques=[models.Cheque(name='123123', value='100')]
) )
mock_create_one = mocker.patch.object( mocker.patch.object(
service, service,
'create_one', 'create_one',
return_value=contract_result return_value=contract_result
) )
mock_add_contract_file = mocker.patch.object( mocker.patch.object(
service, service,
'add_contract_file', 'add_contract_file',
return_value=True return_value=True
) )
mock_generate_html_contract = mocker.patch('src.contracts.generate_contract.generate_html_contract') mocker.patch(
'src.contracts.generate_contract.generate_html_contract')
response = client.post('/api/contracts', json=contract_body) response = client.post('/api/contracts', json=contract_body)
assert response.status_code == 200 assert response.status_code == 200
contract_id = 'test_test_test type_hiver-2026' contract_id = 'test_test_test type_hiver-2026'
assert response.headers['Content-Disposition'] == f'attachment; filename=contract_{contract_id}.pdf' assert response.headers[
'Content-Disposition'] == (
f'attachment; filename=contract_{contract_id}.pdf'
)
def test_delete_one(self, client, mocker, mock_session, mock_user): def test_delete_one(self, client, mocker, mock_session, mock_user):
contract_result = contract_factory.contract_public_factory() contract_result = contract_factory.contract_public_factory()
@@ -168,14 +195,13 @@ class TestContracts:
return_value=contract_result return_value=contract_result
) )
mock_is_allowed = mocker.patch.object( mocker.patch.object(
service, service,
'is_allowed', 'is_allowed',
return_value=True return_value=True
) )
response = client.delete('/api/contracts/2') response = client.delete('/api/contracts/2')
response_data = response.json()
assert response.status_code == 200 assert response.status_code == 200
mock.assert_called_once_with( mock.assert_called_once_with(
@@ -183,7 +209,12 @@ class TestContracts:
2, 2,
) )
def test_delete_one_notfound(self, client, mocker, mock_session, mock_user): def test_delete_one_notfound(
self,
client,
mocker,
mock_session,
mock_user):
contract_result = None contract_result = None
mock = mocker.patch.object( mock = mocker.patch.object(
@@ -192,14 +223,13 @@ class TestContracts:
return_value=contract_result return_value=contract_result
) )
mock_is_allowed = mocker.patch.object( mocker.patch.object(
service, service,
'is_allowed', 'is_allowed',
return_value=True return_value=True
) )
response = client.delete('/api/contracts/2') response = client.delete('/api/contracts/2')
response_data = response.json()
assert response.status_code == 404 assert response.status_code == 404
mock.assert_called_once_with( mock.assert_called_once_with(
@@ -207,11 +237,15 @@ class TestContracts:
2, 2,
) )
def test_delete_one_unauthorized(self, client, mocker, mock_session, mock_user): def test_delete_one_unauthorized(
self,
client,
mocker,
mock_session,
mock_user):
def unauthorized(): def unauthorized():
raise HTTPException(status_code=401) raise HTTPException(status_code=401)
contract_body = contract_factory.contract_body_factory()
app.dependency_overrides[get_current_user] = unauthorized app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.contracts.service.delete_one') mock = mocker.patch('src.contracts.service.delete_one')
@@ -220,4 +254,4 @@ class TestContracts:
assert response.status_code == 401 assert response.status_code == 401
mock.assert_not_called() mock.assert_not_called()
app.dependency_overrides.clear() app.dependency_overrides.clear()

View File

@@ -7,6 +7,7 @@ import tests.factories.forms as form_factory
from fastapi.exceptions import HTTPException from fastapi.exceptions import HTTPException
import src.messages as messages import src.messages as messages
class TestForms: class TestForms:
def test_get_all(self, client, mocker, mock_session, mock_user): def test_get_all(self, client, mocker, mock_session, mock_user):
mock_results = [ mock_results = [
@@ -32,6 +33,7 @@ class TestForms:
False, False,
mock_user, mock_user,
) )
def test_get_all_filters(self, client, mocker, mock_session, mock_user): def test_get_all_filters(self, client, mocker, mock_session, mock_user):
mock_results = [ mock_results = [
form_factory.form_public_factory(name="test 2", id=2), form_factory.form_public_factory(name="test 2", id=2),
@@ -42,7 +44,8 @@ class TestForms:
return_value=mock_results return_value=mock_results
) )
response = client.get('/api/forms/referents?current_season=true&seasons=hiver-2025&productors=test productor') response = client.get(
'/api/forms/referents?current_season=true&seasons=hiver-2025&productors=test productor')
response_data = response.json() response_data = response.json()
assert response.status_code == 200 assert response.status_code == 200
assert response_data[0]['id'] == 2 assert response_data[0]['id'] == 2
@@ -55,10 +58,15 @@ class TestForms:
mock_user, mock_user,
) )
def test_get_all_unauthorized(self, client, mocker, mock_session, mock_user): def test_get_all_unauthorized(
self,
client,
mocker,
mock_session,
mock_user):
def unauthorized(): def unauthorized():
raise HTTPException(status_code=401) raise HTTPException(status_code=401)
app.dependency_overrides[get_current_user] = unauthorized app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.forms.service.get_all') mock = mocker.patch('src.forms.service.get_all')
@@ -87,7 +95,7 @@ class TestForms:
mock_session, mock_session,
2 2
) )
def test_get_one_notfound(self, client, mocker, mock_session, mock_user): def test_get_one_notfound(self, client, mocker, mock_session, mock_user):
mock_result = None mock_result = None
mock = mocker.patch.object( mock = mocker.patch.object(
@@ -102,8 +110,7 @@ class TestForms:
mock_session, mock_session,
2 2
) )
def test_create_one(self, client, mocker, mock_session, mock_user): def test_create_one(self, client, mocker, mock_session, mock_user):
form_body = form_factory.form_body_factory(name='test form create') form_body = form_factory.form_body_factory(name='test form create')
form_create = form_factory.form_create_factory(name='test form create') form_create = form_factory.form_create_factory(name='test form create')
@@ -124,16 +131,17 @@ class TestForms:
mock_session, mock_session,
form_create form_create
) )
def test_create_one_referer_notfound(self, client, mocker, mock_session, mock_user): def test_create_one_referer_notfound(
form_body = form_factory.form_body_factory(name='test form create', referer_id=12312) self, client, mocker, mock_session, mock_user):
form_create = form_factory.form_create_factory(name='test form create', referer_id=12312) form_body = form_factory.form_body_factory(
name='test form create', referer_id=12312)
form_create = form_factory.form_create_factory(
name='test form create', referer_id=12312)
mock = mocker.patch.object( mock = mocker.patch.object(
service, service, 'create_one', side_effect=forms_exceptions.UserNotFoundError(
'create_one', messages.Messages.not_found('referer')))
side_effect=forms_exceptions.UserNotFoundError(messages.Messages.not_found('referer'))
)
response = client.post('/api/forms', json=form_body) response = client.post('/api/forms', json=form_body)
response_data = response.json() response_data = response.json()
@@ -144,15 +152,16 @@ class TestForms:
form_create form_create
) )
def test_create_one_productor_notfound(self, client, mocker, mock_session, mock_user): def test_create_one_productor_notfound(
form_body = form_factory.form_body_factory(name='test form create', productor_id=1231) self, client, mocker, mock_session, mock_user):
form_create = form_factory.form_create_factory(name='test form create', productor_id=1231) form_body = form_factory.form_body_factory(
name='test form create', productor_id=1231)
form_create = form_factory.form_create_factory(
name='test form create', productor_id=1231)
mock = mocker.patch.object( mock = mocker.patch.object(
service, service, 'create_one', side_effect=forms_exceptions.ProductorNotFoundError(
'create_one', messages.Messages.not_found('productor')))
side_effect=forms_exceptions.ProductorNotFoundError(messages.Messages.not_found('productor'))
)
response = client.post('/api/forms', json=form_body) response = client.post('/api/forms', json=form_body)
response_data = response.json() response_data = response.json()
@@ -163,11 +172,16 @@ class TestForms:
form_create form_create
) )
def test_create_one_unauthorized(self, client, mocker, mock_session, mock_user): def test_create_one_unauthorized(
self,
client,
mocker,
mock_session,
mock_user):
def unauthorized(): def unauthorized():
raise HTTPException(status_code=401) raise HTTPException(status_code=401)
form_body = form_factory.form_body_factory(name='test form create') form_body = form_factory.form_body_factory(name='test form create')
app.dependency_overrides[get_current_user] = unauthorized app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.forms.service.create_one') mock = mocker.patch('src.forms.service.create_one')
@@ -200,35 +214,18 @@ class TestForms:
form_update form_update
) )
def test_update_one_notfound(self, client, mocker, mock_session, mock_user): def test_update_one_notfound(
form_body = form_factory.form_body_factory(name='test form update') self,
form_update = form_factory.form_update_factory(name='test form update') client,
mocker,
mock = mocker.patch.object(
service,
'update_one',
side_effect=forms_exceptions.FormNotFoundError(messages.Messages.not_found('form'))
)
response = client.put('/api/forms/2', json=form_body)
response_data = response.json()
assert response.status_code == 404
mock.assert_called_once_with(
mock_session, mock_session,
2, mock_user):
form_update
)
def test_update_one_referer_notfound(self, client, mocker, mock_session, mock_user):
form_body = form_factory.form_body_factory(name='test form update') form_body = form_factory.form_body_factory(name='test form update')
form_update = form_factory.form_update_factory(name='test form update') form_update = form_factory.form_update_factory(name='test form update')
mock = mocker.patch.object( mock = mocker.patch.object(
service, service, 'update_one', side_effect=forms_exceptions.FormNotFoundError(
'update_one', messages.Messages.not_found('form')))
side_effect=forms_exceptions.UserNotFoundError(messages.Messages.not_found('referer'))
)
response = client.put('/api/forms/2', json=form_body) response = client.put('/api/forms/2', json=form_body)
response_data = response.json() response_data = response.json()
@@ -240,15 +237,14 @@ class TestForms:
form_update form_update
) )
def test_update_one_productor_notfound(self, client, mocker, mock_session, mock_user): def test_update_one_referer_notfound(
self, client, mocker, mock_session, mock_user):
form_body = form_factory.form_body_factory(name='test form update') form_body = form_factory.form_body_factory(name='test form update')
form_update = form_factory.form_update_factory(name='test form update') form_update = form_factory.form_update_factory(name='test form update')
mock = mocker.patch.object( mock = mocker.patch.object(
service, service, 'update_one', side_effect=forms_exceptions.UserNotFoundError(
'update_one', messages.Messages.not_found('referer')))
side_effect=forms_exceptions.ProductorNotFoundError(messages.Messages.not_found('productor'))
)
response = client.put('/api/forms/2', json=form_body) response = client.put('/api/forms/2', json=form_body)
response_data = response.json() response_data = response.json()
@@ -260,11 +256,35 @@ class TestForms:
form_update form_update
) )
def test_update_one_unauthorized(self, client, mocker, mock_session, mock_user): def test_update_one_productor_notfound(
self, client, mocker, mock_session, mock_user):
form_body = form_factory.form_body_factory(name='test form update')
form_update = form_factory.form_update_factory(name='test form update')
mock = mocker.patch.object(
service, 'update_one', side_effect=forms_exceptions.ProductorNotFoundError(
messages.Messages.not_found('productor')))
response = client.put('/api/forms/2', json=form_body)
response_data = response.json()
assert response.status_code == 404
mock.assert_called_once_with(
mock_session,
2,
form_update
)
def test_update_one_unauthorized(
self,
client,
mocker,
mock_session,
mock_user):
def unauthorized(): def unauthorized():
raise HTTPException(status_code=401) raise HTTPException(status_code=401)
form_body = form_factory.form_body_factory(name='test form update') form_body = form_factory.form_body_factory(name='test form update')
app.dependency_overrides[get_current_user] = unauthorized app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.forms.service.update_one') mock = mocker.patch('src.forms.service.update_one')
@@ -294,14 +314,17 @@ class TestForms:
2, 2,
) )
def test_delete_one_notfound(self, client, mocker, mock_session, mock_user): def test_delete_one_notfound(
self,
client,
mocker,
mock_session,
mock_user):
form_result = None form_result = None
mock = mocker.patch.object( mock = mocker.patch.object(
service, service, 'delete_one', side_effect=forms_exceptions.FormNotFoundError(
'delete_one', messages.Messages.not_found('form')))
side_effect=forms_exceptions.FormNotFoundError(messages.Messages.not_found('form'))
)
response = client.delete('/api/forms/2') response = client.delete('/api/forms/2')
response_data = response.json() response_data = response.json()
@@ -312,10 +335,15 @@ class TestForms:
2, 2,
) )
def test_delete_one_unauthorized(self, client, mocker, mock_session, mock_user): def test_delete_one_unauthorized(
self,
client,
mocker,
mock_session,
mock_user):
def unauthorized(): def unauthorized():
raise HTTPException(status_code=401) raise HTTPException(status_code=401)
app.dependency_overrides[get_current_user] = unauthorized app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.forms.service.delete_one') mock = mocker.patch('src.forms.service.delete_one')
@@ -324,4 +352,4 @@ class TestForms:
assert response.status_code == 401 assert response.status_code == 401
mock.assert_not_called() mock.assert_not_called()
app.dependency_overrides.clear() app.dependency_overrides.clear()

View File

@@ -10,6 +10,7 @@ import src.productors.exceptions as exceptions
import tests.factories.productors as productor_factory import tests.factories.productors as productor_factory
class TestProductors: class TestProductors:
def test_get_all(self, client, mocker, mock_session, mock_user): def test_get_all(self, client, mocker, mock_session, mock_user):
mock_results = [ mock_results = [
@@ -34,6 +35,7 @@ class TestProductors:
[], [],
[], [],
) )
def test_get_all_filters(self, client, mocker, mock_session, mock_user): def test_get_all_filters(self, client, mocker, mock_session, mock_user):
mock_results = [ mock_results = [
productor_factory.productor_public_factory(name="test 2", id=2), productor_factory.productor_public_factory(name="test 2", id=2),
@@ -44,7 +46,8 @@ class TestProductors:
return_value=mock_results return_value=mock_results
) )
response = client.get('/api/productors?types=Légumineuses&names=test 2') response = client.get(
'/api/productors?types=Légumineuses&names=test 2')
response_data = response.json() response_data = response.json()
assert response.status_code == 200 assert response.status_code == 200
assert response_data[0]['id'] == 2 assert response_data[0]['id'] == 2
@@ -56,10 +59,15 @@ class TestProductors:
['Légumineuses'], ['Légumineuses'],
) )
def test_get_all_unauthorized(self, client, mocker, mock_session, mock_user): def test_get_all_unauthorized(
self,
client,
mocker,
mock_session,
mock_user):
def unauthorized(): def unauthorized():
raise HTTPException(status_code=401) raise HTTPException(status_code=401)
app.dependency_overrides[get_current_user] = unauthorized app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.productors.service.get_all') mock = mocker.patch('src.productors.service.get_all')
@@ -71,7 +79,8 @@ class TestProductors:
app.dependency_overrides.clear() app.dependency_overrides.clear()
def test_get_one(self, client, mocker, mock_session, mock_user): def test_get_one(self, client, mocker, mock_session, mock_user):
mock_result = productor_factory.productor_public_factory(name="test 2", id=2) mock_result = productor_factory.productor_public_factory(
name="test 2", id=2)
mock = mocker.patch.object( mock = mocker.patch.object(
service, service,
@@ -88,7 +97,7 @@ class TestProductors:
mock_session, mock_session,
2 2
) )
def test_get_one_notfound(self, client, mocker, mock_session, mock_user): def test_get_one_notfound(self, client, mocker, mock_session, mock_user):
mock_result = None mock_result = None
mock = mocker.patch.object( mock = mocker.patch.object(
@@ -103,11 +112,16 @@ class TestProductors:
mock_session, mock_session,
2 2
) )
def test_get_one_unauthorized(self, client, mocker, mock_session, mock_user): def test_get_one_unauthorized(
self,
client,
mocker,
mock_session,
mock_user):
def unauthorized(): def unauthorized():
raise HTTPException(status_code=401) raise HTTPException(status_code=401)
app.dependency_overrides[get_current_user] = unauthorized app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.productors.service.get_one') mock = mocker.patch('src.productors.service.get_one')
@@ -117,11 +131,14 @@ class TestProductors:
mock.assert_not_called() mock.assert_not_called()
app.dependency_overrides.clear() app.dependency_overrides.clear()
def test_create_one(self, client, mocker, mock_session, mock_user): def test_create_one(self, client, mocker, mock_session, mock_user):
productor_body = productor_factory.productor_body_factory(name='test productor create') productor_body = productor_factory.productor_body_factory(
productor_create = productor_factory.productor_create_factory(name='test productor create') name='test productor create')
productor_result = productor_factory.productor_public_factory(name='test productor create') productor_create = productor_factory.productor_create_factory(
name='test productor create')
productor_result = productor_factory.productor_public_factory(
name='test productor create')
mock = mocker.patch.object( mock = mocker.patch.object(
service, service,
@@ -139,11 +156,17 @@ class TestProductors:
productor_create productor_create
) )
def test_create_one_unauthorized(self, client, mocker, mock_session, mock_user): def test_create_one_unauthorized(
self,
client,
mocker,
mock_session,
mock_user):
def unauthorized(): def unauthorized():
raise HTTPException(status_code=401) raise HTTPException(status_code=401)
productor_body = productor_factory.productor_body_factory(name='test productor create') productor_body = productor_factory.productor_body_factory(
name='test productor create')
app.dependency_overrides[get_current_user] = unauthorized app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.productors.service.create_one') mock = mocker.patch('src.productors.service.create_one')
@@ -155,9 +178,12 @@ class TestProductors:
app.dependency_overrides.clear() app.dependency_overrides.clear()
def test_update_one(self, client, mocker, mock_session, mock_user): def test_update_one(self, client, mocker, mock_session, mock_user):
productor_body = productor_factory.productor_body_factory(name='test productor update') productor_body = productor_factory.productor_body_factory(
productor_update = productor_factory.productor_update_factory(name='test productor update') name='test productor update')
productor_result = productor_factory.productor_public_factory(name='test productor update') productor_update = productor_factory.productor_update_factory(
name='test productor update')
productor_result = productor_factory.productor_public_factory(
name='test productor update')
mock = mocker.patch.object( mock = mocker.patch.object(
service, service,
@@ -176,16 +202,21 @@ class TestProductors:
productor_update productor_update
) )
def test_update_one_notfound(self, client, mocker, mock_session, mock_user): def test_update_one_notfound(
productor_body = productor_factory.productor_body_factory(name='test productor update') self,
productor_update = productor_factory.productor_update_factory(name='test productor update') client,
mocker,
mock_session,
mock_user):
productor_body = productor_factory.productor_body_factory(
name='test productor update')
productor_update = productor_factory.productor_update_factory(
name='test productor update')
productor_result = None productor_result = None
mock = mocker.patch.object( mock = mocker.patch.object(
service, service, 'update_one', side_effect=exceptions.ProductorNotFoundError(
'update_one', messages.Messages.not_found('productor')))
side_effect=exceptions.ProductorNotFoundError(messages.Messages.not_found('productor'))
)
response = client.put('/api/productors/2', json=productor_body) response = client.put('/api/productors/2', json=productor_body)
response_data = response.json() response_data = response.json()
@@ -197,11 +228,17 @@ class TestProductors:
productor_update productor_update
) )
def test_update_one_unauthorized(self, client, mocker, mock_session, mock_user): def test_update_one_unauthorized(
self,
client,
mocker,
mock_session,
mock_user):
def unauthorized(): def unauthorized():
raise HTTPException(status_code=401) raise HTTPException(status_code=401)
productor_body = productor_factory.productor_body_factory(name='test productor update') productor_body = productor_factory.productor_body_factory(
name='test productor update')
app.dependency_overrides[get_current_user] = unauthorized app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.productors.service.update_one') mock = mocker.patch('src.productors.service.update_one')
@@ -213,7 +250,8 @@ class TestProductors:
app.dependency_overrides.clear() app.dependency_overrides.clear()
def test_delete_one(self, client, mocker, mock_session, mock_user): def test_delete_one(self, client, mocker, mock_session, mock_user):
productor_result = productor_factory.productor_public_factory(name='test productor delete') productor_result = productor_factory.productor_public_factory(
name='test productor delete')
mock = mocker.patch.object( mock = mocker.patch.object(
service, service,
@@ -231,14 +269,17 @@ class TestProductors:
2, 2,
) )
def test_delete_one_notfound(self, client, mocker, mock_session, mock_user): def test_delete_one_notfound(
self,
client,
mocker,
mock_session,
mock_user):
productor_result = None productor_result = None
mock = mocker.patch.object( mock = mocker.patch.object(
service, service, 'delete_one', side_effect=exceptions.ProductorNotFoundError(
'delete_one', messages.Messages.not_found('productor')))
side_effect=exceptions.ProductorNotFoundError(messages.Messages.not_found('productor'))
)
response = client.delete('/api/productors/2') response = client.delete('/api/productors/2')
response_data = response.json() response_data = response.json()
@@ -249,11 +290,17 @@ class TestProductors:
2, 2,
) )
def test_delete_one_unauthorized(self, client, mocker, mock_session, mock_user): def test_delete_one_unauthorized(
self,
client,
mocker,
mock_session,
mock_user):
def unauthorized(): def unauthorized():
raise HTTPException(status_code=401) raise HTTPException(status_code=401)
productor_body = productor_factory.productor_body_factory(name='test productor delete') productor_body = productor_factory.productor_body_factory(
name='test productor delete')
app.dependency_overrides[get_current_user] = unauthorized app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.productors.service.delete_one') mock = mocker.patch('src.productors.service.delete_one')
@@ -262,4 +309,4 @@ class TestProductors:
assert response.status_code == 401 assert response.status_code == 401
mock.assert_not_called() mock.assert_not_called()
app.dependency_overrides.clear() app.dependency_overrides.clear()

View File

@@ -7,6 +7,7 @@ import tests.factories.products as product_factory
from fastapi.exceptions import HTTPException from fastapi.exceptions import HTTPException
class TestProducts: class TestProducts:
def test_get_all(self, client, mocker, mock_session, mock_user): def test_get_all(self, client, mocker, mock_session, mock_user):
mock_results = [ mock_results = [
@@ -32,6 +33,7 @@ class TestProducts:
[], [],
[] []
) )
def test_get_all_filters(self, client, mocker, mock_session, mock_user): def test_get_all_filters(self, client, mocker, mock_session, mock_user):
mock_results = [ mock_results = [
product_factory.product_public_factory(name="test 2", id=2), product_factory.product_public_factory(name="test 2", id=2),
@@ -55,10 +57,15 @@ class TestProducts:
['1'], ['1'],
) )
def test_get_all_unauthorized(self, client, mocker, mock_session, mock_user): def test_get_all_unauthorized(
self,
client,
mocker,
mock_session,
mock_user):
def unauthorized(): def unauthorized():
raise HTTPException(status_code=401) raise HTTPException(status_code=401)
app.dependency_overrides[get_current_user] = unauthorized app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.products.service.get_all') mock = mocker.patch('src.products.service.get_all')
@@ -70,7 +77,8 @@ class TestProducts:
app.dependency_overrides.clear() app.dependency_overrides.clear()
def test_get_one(self, client, mocker, mock_session, mock_user): def test_get_one(self, client, mocker, mock_session, mock_user):
mock_result = product_factory.product_public_factory(name="test 2", id=2) mock_result = product_factory.product_public_factory(
name="test 2", id=2)
mock = mocker.patch.object( mock = mocker.patch.object(
service, service,
@@ -87,7 +95,7 @@ class TestProducts:
mock_session, mock_session,
2 2
) )
def test_get_one_notfound(self, client, mocker, mock_session, mock_user): def test_get_one_notfound(self, client, mocker, mock_session, mock_user):
mock_result = None mock_result = None
mock = mocker.patch.object( mock = mocker.patch.object(
@@ -102,11 +110,16 @@ class TestProducts:
mock_session, mock_session,
2 2
) )
def test_get_one_unauthorized(self, client, mocker, mock_session, mock_user): def test_get_one_unauthorized(
self,
client,
mocker,
mock_session,
mock_user):
def unauthorized(): def unauthorized():
raise HTTPException(status_code=401) raise HTTPException(status_code=401)
app.dependency_overrides[get_current_user] = unauthorized app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.products.service.get_one') mock = mocker.patch('src.products.service.get_one')
@@ -116,11 +129,14 @@ class TestProducts:
mock.assert_not_called() mock.assert_not_called()
app.dependency_overrides.clear() app.dependency_overrides.clear()
def test_create_one(self, client, mocker, mock_session, mock_user): def test_create_one(self, client, mocker, mock_session, mock_user):
product_body = product_factory.product_body_factory(name='test product create') product_body = product_factory.product_body_factory(
product_create = product_factory.product_create_factory(name='test product create') name='test product create')
product_result = product_factory.product_public_factory(name='test product create') product_create = product_factory.product_create_factory(
name='test product create')
product_result = product_factory.product_public_factory(
name='test product create')
mock = mocker.patch.object( mock = mocker.patch.object(
service, service,
@@ -138,11 +154,17 @@ class TestProducts:
product_create product_create
) )
def test_create_one_unauthorized(self, client, mocker, mock_session, mock_user): def test_create_one_unauthorized(
self,
client,
mocker,
mock_session,
mock_user):
def unauthorized(): def unauthorized():
raise HTTPException(status_code=401) raise HTTPException(status_code=401)
product_body = product_factory.product_body_factory(name='test product create') product_body = product_factory.product_body_factory(
name='test product create')
app.dependency_overrides[get_current_user] = unauthorized app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.products.service.create_one') mock = mocker.patch('src.products.service.create_one')
@@ -154,9 +176,12 @@ class TestProducts:
app.dependency_overrides.clear() app.dependency_overrides.clear()
def test_update_one(self, client, mocker, mock_session, mock_user): def test_update_one(self, client, mocker, mock_session, mock_user):
product_body = product_factory.product_body_factory(name='test product update') product_body = product_factory.product_body_factory(
product_update = product_factory.product_update_factory(name='test product update') name='test product update')
product_result = product_factory.product_public_factory(name='test product update') product_update = product_factory.product_update_factory(
name='test product update')
product_result = product_factory.product_public_factory(
name='test product update')
mock = mocker.patch.object( mock = mocker.patch.object(
service, service,
@@ -175,9 +200,16 @@ class TestProducts:
product_update product_update
) )
def test_update_one_notfound(self, client, mocker, mock_session, mock_user): def test_update_one_notfound(
product_body = product_factory.product_body_factory(name='test product update') self,
product_update = product_factory.product_update_factory(name='test product update') client,
mocker,
mock_session,
mock_user):
product_body = product_factory.product_body_factory(
name='test product update')
product_update = product_factory.product_update_factory(
name='test product update')
product_result = None product_result = None
mock = mocker.patch.object( mock = mocker.patch.object(
@@ -196,11 +228,17 @@ class TestProducts:
product_update product_update
) )
def test_update_one_unauthorized(self, client, mocker, mock_session, mock_user): def test_update_one_unauthorized(
self,
client,
mocker,
mock_session,
mock_user):
def unauthorized(): def unauthorized():
raise HTTPException(status_code=401) raise HTTPException(status_code=401)
product_body = product_factory.product_body_factory(name='test product update') product_body = product_factory.product_body_factory(
name='test product update')
app.dependency_overrides[get_current_user] = unauthorized app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.products.service.update_one') mock = mocker.patch('src.products.service.update_one')
@@ -212,7 +250,8 @@ class TestProducts:
app.dependency_overrides.clear() app.dependency_overrides.clear()
def test_delete_one(self, client, mocker, mock_session, mock_user): def test_delete_one(self, client, mocker, mock_session, mock_user):
product_result = product_factory.product_public_factory(name='test product delete') product_result = product_factory.product_public_factory(
name='test product delete')
mock = mocker.patch.object( mock = mocker.patch.object(
service, service,
@@ -230,7 +269,12 @@ class TestProducts:
2, 2,
) )
def test_delete_one_notfound(self, client, mocker, mock_session, mock_user): def test_delete_one_notfound(
self,
client,
mocker,
mock_session,
mock_user):
product_result = None product_result = None
mock = mocker.patch.object( mock = mocker.patch.object(
@@ -248,11 +292,17 @@ class TestProducts:
2, 2,
) )
def test_delete_one_unauthorized(self, client, mocker, mock_session, mock_user): def test_delete_one_unauthorized(
self,
client,
mocker,
mock_session,
mock_user):
def unauthorized(): def unauthorized():
raise HTTPException(status_code=401) raise HTTPException(status_code=401)
product_body = product_factory.product_body_factory(name='test product delete') product_body = product_factory.product_body_factory(
name='test product delete')
app.dependency_overrides[get_current_user] = unauthorized app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.products.service.delete_one') mock = mocker.patch('src.products.service.delete_one')
@@ -261,4 +311,4 @@ class TestProducts:
assert response.status_code == 401 assert response.status_code == 401
mock.assert_not_called() mock.assert_not_called()
app.dependency_overrides.clear() app.dependency_overrides.clear()

View File

@@ -8,6 +8,7 @@ import tests.factories.shipments as shipment_factory
from fastapi.exceptions import HTTPException from fastapi.exceptions import HTTPException
class TestShipments: class TestShipments:
def test_get_all(self, client, mocker, mock_session, mock_user): def test_get_all(self, client, mocker, mock_session, mock_user):
mock_results = [ mock_results = [
@@ -33,6 +34,7 @@ class TestShipments:
[], [],
[], [],
) )
def test_get_all_filters(self, client, mocker, mock_session, mock_user): def test_get_all_filters(self, client, mocker, mock_session, mock_user):
mock_results = [ mock_results = [
shipment_factory.shipment_public_factory(name="test 2", id=2), shipment_factory.shipment_public_factory(name="test 2", id=2),
@@ -43,7 +45,8 @@ class TestShipments:
return_value=mock_results return_value=mock_results
) )
response = client.get('/api/shipments?dates=2025-10-10&names=test 2&forms=contract form 1') response = client.get(
'/api/shipments?dates=2025-10-10&names=test 2&forms=contract form 1')
response_data = response.json() response_data = response.json()
assert response.status_code == 200 assert response.status_code == 200
assert response_data[0]['id'] == 2 assert response_data[0]['id'] == 2
@@ -56,10 +59,15 @@ class TestShipments:
['contract form 1'], ['contract form 1'],
) )
def test_get_all_unauthorized(self, client, mocker, mock_session, mock_user): def test_get_all_unauthorized(
self,
client,
mocker,
mock_session,
mock_user):
def unauthorized(): def unauthorized():
raise HTTPException(status_code=401) raise HTTPException(status_code=401)
app.dependency_overrides[get_current_user] = unauthorized app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.shipments.service.get_all') mock = mocker.patch('src.shipments.service.get_all')
@@ -71,7 +79,8 @@ class TestShipments:
app.dependency_overrides.clear() app.dependency_overrides.clear()
def test_get_one(self, client, mocker, mock_session, mock_user): def test_get_one(self, client, mocker, mock_session, mock_user):
mock_result = shipment_factory.shipment_public_factory(name="test 2", id=2) mock_result = shipment_factory.shipment_public_factory(
name="test 2", id=2)
mock = mocker.patch.object( mock = mocker.patch.object(
service, service,
@@ -88,7 +97,7 @@ class TestShipments:
mock_session, mock_session,
2 2
) )
def test_get_one_notfound(self, client, mocker, mock_session, mock_user): def test_get_one_notfound(self, client, mocker, mock_session, mock_user):
mock_result = None mock_result = None
mock = mocker.patch.object( mock = mocker.patch.object(
@@ -103,11 +112,16 @@ class TestShipments:
mock_session, mock_session,
2 2
) )
def test_get_one_unauthorized(self, client, mocker, mock_session, mock_user): def test_get_one_unauthorized(
self,
client,
mocker,
mock_session,
mock_user):
def unauthorized(): def unauthorized():
raise HTTPException(status_code=401) raise HTTPException(status_code=401)
app.dependency_overrides[get_current_user] = unauthorized app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.shipments.service.get_one') mock = mocker.patch('src.shipments.service.get_one')
@@ -117,11 +131,14 @@ class TestShipments:
mock.assert_not_called() mock.assert_not_called()
app.dependency_overrides.clear() app.dependency_overrides.clear()
def test_create_one(self, client, mocker, mock_session, mock_user): def test_create_one(self, client, mocker, mock_session, mock_user):
shipment_body = shipment_factory.shipment_body_factory(name='test shipment create') shipment_body = shipment_factory.shipment_body_factory(
shipment_create = shipment_factory.shipment_create_factory(name='test shipment create') name='test shipment create')
shipment_result = shipment_factory.shipment_public_factory(name='test shipment create') shipment_create = shipment_factory.shipment_create_factory(
name='test shipment create')
shipment_result = shipment_factory.shipment_public_factory(
name='test shipment create')
mock = mocker.patch.object( mock = mocker.patch.object(
service, service,
@@ -139,11 +156,17 @@ class TestShipments:
shipment_create shipment_create
) )
def test_create_one_unauthorized(self, client, mocker, mock_session, mock_user): def test_create_one_unauthorized(
self,
client,
mocker,
mock_session,
mock_user):
def unauthorized(): def unauthorized():
raise HTTPException(status_code=401) raise HTTPException(status_code=401)
shipment_body = shipment_factory.shipment_body_factory(name='test shipment create') shipment_body = shipment_factory.shipment_body_factory(
name='test shipment create')
app.dependency_overrides[get_current_user] = unauthorized app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.shipments.service.create_one') mock = mocker.patch('src.shipments.service.create_one')
@@ -155,9 +178,12 @@ class TestShipments:
app.dependency_overrides.clear() app.dependency_overrides.clear()
def test_update_one(self, client, mocker, mock_session, mock_user): def test_update_one(self, client, mocker, mock_session, mock_user):
shipment_body = shipment_factory.shipment_body_factory(name='test shipment update') shipment_body = shipment_factory.shipment_body_factory(
shipment_update = shipment_factory.shipment_update_factory(name='test shipment update') name='test shipment update')
shipment_result = shipment_factory.shipment_public_factory(name='test shipment update') shipment_update = shipment_factory.shipment_update_factory(
name='test shipment update')
shipment_result = shipment_factory.shipment_public_factory(
name='test shipment update')
mock = mocker.patch.object( mock = mocker.patch.object(
service, service,
@@ -176,15 +202,20 @@ class TestShipments:
shipment_update shipment_update
) )
def test_update_one_notfound(self, client, mocker, mock_session, mock_user): def test_update_one_notfound(
shipment_body = shipment_factory.shipment_body_factory(name='test shipment update') self,
shipment_update = shipment_factory.shipment_update_factory(name='test shipment update') client,
mocker,
mock_session,
mock_user):
shipment_body = shipment_factory.shipment_body_factory(
name='test shipment update')
shipment_update = shipment_factory.shipment_update_factory(
name='test shipment update')
mock = mocker.patch.object( mock = mocker.patch.object(
service, service, 'update_one', side_effect=exceptions.ShipmentNotFoundError(
'update_one', messages.Messages.not_found('shipment')))
side_effect=exceptions.ShipmentNotFoundError(messages.Messages.not_found('shipment'))
)
response = client.put('/api/shipments/2', json=shipment_body) response = client.put('/api/shipments/2', json=shipment_body)
response_data = response.json() response_data = response.json()
@@ -196,11 +227,17 @@ class TestShipments:
shipment_update shipment_update
) )
def test_update_one_unauthorized(self, client, mocker, mock_session, mock_user): def test_update_one_unauthorized(
self,
client,
mocker,
mock_session,
mock_user):
def unauthorized(): def unauthorized():
raise HTTPException(status_code=401) raise HTTPException(status_code=401)
shipment_body = shipment_factory.shipment_body_factory(name='test shipment update') shipment_body = shipment_factory.shipment_body_factory(
name='test shipment update')
app.dependency_overrides[get_current_user] = unauthorized app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.shipments.service.update_one') mock = mocker.patch('src.shipments.service.update_one')
@@ -212,7 +249,8 @@ class TestShipments:
app.dependency_overrides.clear() app.dependency_overrides.clear()
def test_delete_one(self, client, mocker, mock_session, mock_user): def test_delete_one(self, client, mocker, mock_session, mock_user):
shipment_result = shipment_factory.shipment_public_factory(name='test shipment delete') shipment_result = shipment_factory.shipment_public_factory(
name='test shipment delete')
mock = mocker.patch.object( mock = mocker.patch.object(
service, service,
@@ -230,14 +268,17 @@ class TestShipments:
2, 2,
) )
def test_delete_one_notfound(self, client, mocker, mock_session, mock_user): def test_delete_one_notfound(
self,
client,
mocker,
mock_session,
mock_user):
shipment_result = None shipment_result = None
mock = mocker.patch.object( mock = mocker.patch.object(
service, service, 'delete_one', side_effect=exceptions.ShipmentNotFoundError(
'delete_one', messages.Messages.not_found('shipment')))
side_effect=exceptions.ShipmentNotFoundError(messages.Messages.not_found('shipment'))
)
response = client.delete('/api/shipments/2') response = client.delete('/api/shipments/2')
response_data = response.json() response_data = response.json()
@@ -248,11 +289,17 @@ class TestShipments:
2, 2,
) )
def test_delete_one_unauthorized(self, client, mocker, mock_session, mock_user): def test_delete_one_unauthorized(
self,
client,
mocker,
mock_session,
mock_user):
def unauthorized(): def unauthorized():
raise HTTPException(status_code=401) raise HTTPException(status_code=401)
shipment_body = shipment_factory.shipment_body_factory(name='test shipment delete') shipment_body = shipment_factory.shipment_body_factory(
name='test shipment delete')
app.dependency_overrides[get_current_user] = unauthorized app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.shipments.service.delete_one') mock = mocker.patch('src.shipments.service.delete_one')
@@ -261,4 +308,4 @@ class TestShipments:
assert response.status_code == 401 assert response.status_code == 401
mock.assert_not_called() mock.assert_not_called()
app.dependency_overrides.clear() app.dependency_overrides.clear()

View File

@@ -7,6 +7,7 @@ import src.users.exceptions as exceptions
from fastapi.exceptions import HTTPException from fastapi.exceptions import HTTPException
class TestUsers: class TestUsers:
def test_get_all(self, client, mocker, mock_session, mock_user): def test_get_all(self, client, mocker, mock_session, mock_user):
mock_results = [ mock_results = [
@@ -30,6 +31,7 @@ class TestUsers:
[], [],
[], [],
) )
def test_get_all_filters(self, client, mocker, mock_session, mock_user): def test_get_all_filters(self, client, mocker, mock_session, mock_user):
mock_results = [ mock_results = [
user_factory.user_public_factory(name="test 2", id=2), user_factory.user_public_factory(name="test 2", id=2),
@@ -51,10 +53,15 @@ class TestUsers:
['test@test.test'], ['test@test.test'],
) )
def test_get_all_unauthorized(self, client, mocker, mock_session, mock_user): def test_get_all_unauthorized(
self,
client,
mocker,
mock_session,
mock_user):
def unauthorized(): def unauthorized():
raise HTTPException(status_code=401) raise HTTPException(status_code=401)
app.dependency_overrides[get_current_user] = unauthorized app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.users.service.get_all') mock = mocker.patch('src.users.service.get_all')
@@ -83,7 +90,7 @@ class TestUsers:
mock_session, mock_session,
2 2
) )
def test_get_one_notfound(self, client, mocker, mock_session, mock_user): def test_get_one_notfound(self, client, mocker, mock_session, mock_user):
mock_result = None mock_result = None
mock = mocker.patch.object( mock = mocker.patch.object(
@@ -98,11 +105,16 @@ class TestUsers:
mock_session, mock_session,
2 2
) )
def test_get_one_unauthorized(self, client, mocker, mock_session, mock_user): def test_get_one_unauthorized(
self,
client,
mocker,
mock_session,
mock_user):
def unauthorized(): def unauthorized():
raise HTTPException(status_code=401) raise HTTPException(status_code=401)
app.dependency_overrides[get_current_user] = unauthorized app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.users.service.get_one') mock = mocker.patch('src.users.service.get_one')
@@ -112,7 +124,7 @@ class TestUsers:
mock.assert_not_called() mock.assert_not_called()
app.dependency_overrides.clear() app.dependency_overrides.clear()
def test_create_one(self, client, mocker, mock_session, mock_user): def test_create_one(self, client, mocker, mock_session, mock_user):
user_body = user_factory.user_body_factory(name='test user create') user_body = user_factory.user_body_factory(name='test user create')
user_create = user_factory.user_create_factory(name='test user create') user_create = user_factory.user_create_factory(name='test user create')
@@ -134,11 +146,16 @@ class TestUsers:
user_create user_create
) )
def test_create_one_unauthorized(self, client, mocker, mock_session, mock_user): def test_create_one_unauthorized(
self,
client,
mocker,
mock_session,
mock_user):
def unauthorized(): def unauthorized():
raise HTTPException(status_code=401) raise HTTPException(status_code=401)
user_body = user_factory.user_body_factory(name='test user create') user_body = user_factory.user_body_factory(name='test user create')
app.dependency_overrides[get_current_user] = unauthorized app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.users.service.create_one') mock = mocker.patch('src.users.service.create_one')
@@ -171,7 +188,12 @@ class TestUsers:
user_update user_update
) )
def test_update_one_notfound(self, client, mocker, mock_session, mock_user): def test_update_one_notfound(
self,
client,
mocker,
mock_session,
mock_user):
user_body = user_factory.user_body_factory(name='test user update') user_body = user_factory.user_body_factory(name='test user update')
user_update = user_factory.user_update_factory(name='test user update') user_update = user_factory.user_update_factory(name='test user update')
user_result = None user_result = None
@@ -192,11 +214,16 @@ class TestUsers:
user_update user_update
) )
def test_update_one_unauthorized(self, client, mocker, mock_session, mock_user): def test_update_one_unauthorized(
self,
client,
mocker,
mock_session,
mock_user):
def unauthorized(): def unauthorized():
raise HTTPException(status_code=401) raise HTTPException(status_code=401)
user_body = user_factory.user_body_factory(name='test user update') user_body = user_factory.user_body_factory(name='test user update')
app.dependency_overrides[get_current_user] = unauthorized app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.users.service.update_one') mock = mocker.patch('src.users.service.update_one')
@@ -226,7 +253,12 @@ class TestUsers:
2, 2,
) )
def test_delete_one_notfound(self, client, mocker, mock_session, mock_user): def test_delete_one_notfound(
self,
client,
mocker,
mock_session,
mock_user):
user_result = None user_result = None
mock = mocker.patch.object( mock = mocker.patch.object(
@@ -244,11 +276,16 @@ class TestUsers:
2, 2,
) )
def test_delete_one_unauthorized(self, client, mocker, mock_session, mock_user): def test_delete_one_unauthorized(
self,
client,
mocker,
mock_session,
mock_user):
def unauthorized(): def unauthorized():
raise HTTPException(status_code=401) raise HTTPException(status_code=401)
user_body = user_factory.user_body_factory(name='test user delete') user_body = user_factory.user_body_factory(name='test user delete')
app.dependency_overrides[get_current_user] = unauthorized app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.users.service.delete_one') mock = mocker.patch('src.users.service.delete_one')
@@ -257,4 +294,4 @@ class TestUsers:
assert response.status_code == 401 assert response.status_code == 401
mock.assert_not_called() mock.assert_not_called()
app.dependency_overrides.clear() app.dependency_overrides.clear()

View File

@@ -6,30 +6,37 @@ import src.forms.service as forms_service
import src.forms.exceptions as forms_exceptions import src.forms.exceptions as forms_exceptions
import tests.factories.forms as forms_factory import tests.factories.forms as forms_factory
class TestFormsService: class TestFormsService:
def test_get_all_forms(self, session: Session, forms: list[models.FormPublic]): def test_get_all_forms(self, session: Session,
forms: list[models.FormPublic]):
result = forms_service.get_all(session, [], [], False) result = forms_service.get_all(session, [], [], False)
assert len(result) == 2 assert len(result) == 2
assert result == forms assert result == forms
def test_get_all_forms_filter_productors(self, session: Session, forms: list[models.FormPublic]): def test_get_all_forms_filter_productors(
self, session: Session, forms: list[models.FormPublic]):
result = forms_service.get_all(session, [], ['test productor'], False) result = forms_service.get_all(session, [], ['test productor'], False)
assert len(result) == 2 assert len(result) == 2
assert result == forms assert result == forms
def test_get_all_forms_filter_season(self, session: Session, forms: list[models.FormPublic]): def test_get_all_forms_filter_season(
self, session: Session, forms: list[models.FormPublic]):
result = forms_service.get_all(session, ['test season 1'], [], False) result = forms_service.get_all(session, ['test season 1'], [], False)
assert len(result) == 1 assert len(result) == 1
def test_get_all_forms_all_filters(self, session: Session, forms: list[models.FormPublic]): def test_get_all_forms_all_filters(
result = forms_service.get_all(session, ['test season 1'], ['test productor'], True) self, session: Session, forms: list[models.FormPublic]):
result = forms_service.get_all(
session, ['test season 1'], ['test productor'], True)
assert result == forms assert result == forms
def test_get_one_form(self, session: Session, forms: list[models.FormPublic]): def test_get_one_form(self, session: Session,
forms: list[models.FormPublic]):
result = forms_service.get_one(session, forms[0].id) result = forms_service.get_one(session, forms[0].id)
assert result == forms[0] assert result == forms[0]
@@ -37,10 +44,10 @@ class TestFormsService:
def test_get_one_form_notfound(self, session: Session): def test_get_one_form_notfound(self, session: Session):
result = forms_service.get_one(session, 122) result = forms_service.get_one(session, 122)
assert result == None assert result is None
def test_create_form( def test_create_form(
self, self,
session: Session, session: Session,
productor: models.ProductorPublic, productor: models.ProductorPublic,
referer: models.ProductorPublic referer: models.ProductorPublic
@@ -56,10 +63,10 @@ class TestFormsService:
assert result.id is not None assert result.id is not None
assert result.name == "new test form" assert result.name == "new test form"
assert result.productor.name == "test productor" assert result.productor.name == "test productor"
def test_create_form_invalidinput( def test_create_form_invalidinput(
self, self,
session: Session, session: Session,
productor: models.Productor productor: models.Productor
): ):
form_create = None form_create = None
@@ -69,17 +76,16 @@ class TestFormsService:
form_create = forms_factory.form_create_factory(productor_id=123) form_create = forms_factory.form_create_factory(productor_id=123)
with pytest.raises(forms_exceptions.ProductorNotFoundError): with pytest.raises(forms_exceptions.ProductorNotFoundError):
result = forms_service.create_one(session, form_create) result = forms_service.create_one(session, form_create)
form_create = forms_factory.form_create_factory( form_create = forms_factory.form_create_factory(
productor_id=productor.id, productor_id=productor.id,
referer_id=123 referer_id=123
) )
with pytest.raises(forms_exceptions.UserNotFoundError): with pytest.raises(forms_exceptions.UserNotFoundError):
result = forms_service.create_one(session, form_create) result = forms_service.create_one(session, form_create)
def test_update_form( def test_update_form(
self, self,
session: Session, session: Session,
productor: models.ProductorPublic, productor: models.ProductorPublic,
referer: models.ProductorPublic, referer: models.ProductorPublic,
@@ -97,9 +103,9 @@ class TestFormsService:
assert result.id == form_id assert result.id == form_id
assert result.name == 'updated test form' assert result.name == 'updated test form'
assert result.season == 'updated test season' assert result.season == 'updated test season'
def test_update_form_notfound( def test_update_form_notfound(
self, self,
session: Session, session: Session,
productor: models.ProductorPublic, productor: models.ProductorPublic,
referer: models.ProductorPublic, referer: models.ProductorPublic,
@@ -113,42 +119,41 @@ class TestFormsService:
form_id = 123 form_id = 123
with pytest.raises(forms_exceptions.FormNotFoundError): with pytest.raises(forms_exceptions.FormNotFoundError):
result = forms_service.update_one(session, form_id, form_update) result = forms_service.update_one(session, form_id, form_update)
def test_update_form_invalidinput( def test_update_form_invalidinput(
self, self,
session: Session, session: Session,
productor: models.ProductorPublic, productor: models.ProductorPublic,
forms: list[models.FormPublic] forms: list[models.FormPublic]
): ):
form_id = forms[0].id form_id = forms[0].id
form_update = forms_factory.form_update_factory(productor_id=123) form_update = forms_factory.form_update_factory(productor_id=123)
with pytest.raises(forms_exceptions.ProductorNotFoundError): with pytest.raises(forms_exceptions.ProductorNotFoundError):
result = forms_service.update_one(session, form_id, form_update) result = forms_service.update_one(session, form_id, form_update)
form_update = forms_factory.form_update_factory( form_update = forms_factory.form_update_factory(
productor_id=productor.id, productor_id=productor.id,
referer_id=123 referer_id=123
) )
with pytest.raises(forms_exceptions.UserNotFoundError): with pytest.raises(forms_exceptions.UserNotFoundError):
result = forms_service.update_one(session, form_id, form_update) result = forms_service.update_one(session, form_id, form_update)
def test_delete_form( def test_delete_form(
self, self,
session: Session, session: Session,
forms: list[models.FormPublic] forms: list[models.FormPublic]
): ):
form_id = forms[0].id form_id = forms[0].id
result = forms_service.delete_one(session, form_id) result = forms_service.delete_one(session, form_id)
check = forms_service.get_one(session, form_id) check = forms_service.get_one(session, form_id)
assert check == None assert check is None
def test_delete_form_notfound( def test_delete_form_notfound(
self, self,
session: Session, session: Session,
forms: list[models.FormPublic] forms: list[models.FormPublic]
): ):
form_id = 123 form_id = 123
with pytest.raises(forms_exceptions.FormNotFoundError): with pytest.raises(forms_exceptions.FormNotFoundError):
result = forms_service.delete_one(session, form_id) result = forms_service.delete_one(session, form_id)

View File

@@ -6,10 +6,11 @@ import src.productors.service as productors_service
import src.productors.exceptions as productors_exceptions import src.productors.exceptions as productors_exceptions
import tests.factories.productors as productors_factory import tests.factories.productors as productors_factory
class TestProductorsService: class TestProductorsService:
def test_get_all_productors( def test_get_all_productors(
self, self,
session: Session, session: Session,
productors: list[models.ProductorPublic], productors: list[models.ProductorPublic],
user: models.UserPublic user: models.UserPublic
): ):
@@ -19,51 +20,53 @@ class TestProductorsService:
assert result == [productors[0]] assert result == [productors[0]]
def test_get_all_productors_filter_names( def test_get_all_productors_filter_names(
self, self,
session: Session, session: Session,
productors: list[models.ProductorPublic], productors: list[models.ProductorPublic],
user: models.UserPublic user: models.UserPublic
): ):
result = productors_service.get_all( result = productors_service.get_all(
session, session,
user, user,
['test productor 1'], ['test productor 1'],
[] []
) )
assert len(result) == 1 assert len(result) == 1
def test_get_all_productors_filter_types( def test_get_all_productors_filter_types(
self, self,
session: Session, session: Session,
productors: list[models.ProductorPublic], productors: list[models.ProductorPublic],
user: models.UserPublic user: models.UserPublic
): ):
result = productors_service.get_all( result = productors_service.get_all(
session, session,
user, user,
[], [],
['Légumineuses'], ['Légumineuses'],
) )
assert len(result) == 1 assert len(result) == 1
def test_get_all_productors_all_filters( def test_get_all_productors_all_filters(
self, self,
session: Session, session: Session,
productors: list[models.ProductorPublic], productors: list[models.ProductorPublic],
user: models.UserPublic user: models.UserPublic
): ):
result = productors_service.get_all( result = productors_service.get_all(
session, session,
user, user,
['test productor 1'], ['test productor 1'],
['Légumineuses'], ['Légumineuses'],
) )
assert len(result) == 1 assert len(result) == 1
def test_get_one_productor(self, session: Session, productors: list[models.ProductorPublic]): def test_get_one_productor(self,
session: Session,
productors: list[models.ProductorPublic]):
result = productors_service.get_one(session, productors[0].id) result = productors_service.get_one(session, productors[0].id)
assert result == productors[0] assert result == productors[0]
@@ -71,10 +74,10 @@ class TestProductorsService:
def test_get_one_productor_notfound(self, session: Session): def test_get_one_productor_notfound(self, session: Session):
result = productors_service.get_one(session, 122) result = productors_service.get_one(session, 122)
assert result == None assert result is None
def test_create_productor( def test_create_productor(
self, self,
session: Session, session: Session,
referer: models.ProductorPublic referer: models.ProductorPublic
): ):
@@ -85,17 +88,17 @@ class TestProductorsService:
assert result.id is not None assert result.id is not None
assert result.name == "new test productor" assert result.name == "new test productor"
def test_create_productor_invalidinput( def test_create_productor_invalidinput(
self, self,
session: Session, session: Session,
): ):
productor_create = None productor_create = None
with pytest.raises(productors_exceptions.ProductorCreateError): with pytest.raises(productors_exceptions.ProductorCreateError):
result = productors_service.create_one(session, productor_create) result = productors_service.create_one(session, productor_create)
def test_update_productor( def test_update_productor(
self, self,
session: Session, session: Session,
referer: models.ProductorPublic, referer: models.ProductorPublic,
productors: list[models.ProductorPublic] productors: list[models.ProductorPublic]
@@ -104,13 +107,14 @@ class TestProductorsService:
name='updated test productor', name='updated test productor',
) )
productor_id = productors[0].id productor_id = productors[0].id
result = productors_service.update_one(session, productor_id, productor_update) result = productors_service.update_one(
session, productor_id, productor_update)
assert result.id == productor_id assert result.id == productor_id
assert result.name == 'updated test productor' assert result.name == 'updated test productor'
def test_update_productor_notfound( def test_update_productor_notfound(
self, self,
session: Session, session: Session,
referer: models.ProductorPublic, referer: models.ProductorPublic,
): ):
@@ -119,25 +123,25 @@ class TestProductorsService:
) )
productor_id = 123 productor_id = 123
with pytest.raises(productors_exceptions.ProductorNotFoundError): with pytest.raises(productors_exceptions.ProductorNotFoundError):
result = productors_service.update_one(session, productor_id, productor_update) result = productors_service.update_one(
session, productor_id, productor_update)
def test_delete_productor( def test_delete_productor(
self, self,
session: Session, session: Session,
productors: list[models.ProductorPublic] productors: list[models.ProductorPublic]
): ):
productor_id = productors[0].id productor_id = productors[0].id
result = productors_service.delete_one(session, productor_id) result = productors_service.delete_one(session, productor_id)
check = productors_service.get_one(session, productor_id) check = productors_service.get_one(session, productor_id)
assert check == None assert check is None
def test_delete_productor_notfound( def test_delete_productor_notfound(
self, self,
session: Session, session: Session,
productors: list[models.ProductorPublic] productors: list[models.ProductorPublic]
): ):
productor_id = 123 productor_id = 123
with pytest.raises(productors_exceptions.ProductorNotFoundError): with pytest.raises(productors_exceptions.ProductorNotFoundError):
result = productors_service.delete_one(session, productor_id) result = productors_service.delete_one(session, productor_id)

View File

@@ -6,10 +6,11 @@ import src.products.service as products_service
import src.products.exceptions as products_exceptions import src.products.exceptions as products_exceptions
import tests.factories.products as products_factory import tests.factories.products as products_factory
class TestProductsService: class TestProductsService:
def test_get_all_products( def test_get_all_products(
self, self,
session: Session, session: Session,
products: list[models.ProductPublic], products: list[models.ProductPublic],
user: models.UserPublic user: models.UserPublic
): ):
@@ -19,16 +20,16 @@ class TestProductsService:
assert result == products assert result == products
def test_get_all_products_filter_productors( def test_get_all_products_filter_productors(
self, self,
session: Session, session: Session,
products: list[models.ProductPublic], products: list[models.ProductPublic],
user: models.UserPublic user: models.UserPublic
): ):
result = products_service.get_all( result = products_service.get_all(
session, session,
user, user,
[], [],
['test productor'], ['test productor'],
[] []
) )
@@ -36,54 +37,55 @@ class TestProductsService:
assert result == products assert result == products
def test_get_all_products_filter_names( def test_get_all_products_filter_names(
self, self,
session: Session, session: Session,
products: list[models.ProductPublic], products: list[models.ProductPublic],
user: models.UserPublic user: models.UserPublic
): ):
result = products_service.get_all( result = products_service.get_all(
session, session,
user, user,
['product 1 occasionnal'], ['product 1 occasionnal'],
[], [],
[] []
) )
assert len(result) == 1 assert len(result) == 1
def test_get_all_products_filter_types( def test_get_all_products_filter_types(
self, self,
session: Session, session: Session,
products: list[models.ProductPublic], products: list[models.ProductPublic],
user: models.UserPublic user: models.UserPublic
): ):
result = products_service.get_all( result = products_service.get_all(
session, session,
user, user,
[], [],
[], [],
['1'] ['1']
) )
assert len(result) == 1 assert len(result) == 1
def test_get_all_products_all_filters( def test_get_all_products_all_filters(
self, self,
session: Session, session: Session,
products: list[models.ProductPublic], products: list[models.ProductPublic],
user: models.UserPublic user: models.UserPublic
): ):
result = products_service.get_all( result = products_service.get_all(
session, session,
user, user,
['product 1 occasionnal'], ['product 1 occasionnal'],
['test productor'], ['test productor'],
['1'] ['1']
) )
assert len(result) == 1 assert len(result) == 1
def test_get_one_product(self, session: Session, products: list[models.ProductPublic]): def test_get_one_product(self, session: Session,
products: list[models.ProductPublic]):
result = products_service.get_one(session, products[0].id) result = products_service.get_one(session, products[0].id)
assert result == products[0] assert result == products[0]
@@ -91,10 +93,10 @@ class TestProductsService:
def test_get_one_product_notfound(self, session: Session): def test_get_one_product_notfound(self, session: Session):
result = products_service.get_one(session, 122) result = products_service.get_one(session, 122)
assert result == None assert result is None
def test_create_product( def test_create_product(
self, self,
session: Session, session: Session,
productor: models.ProductorPublic, productor: models.ProductorPublic,
referer: models.ProductorPublic referer: models.ProductorPublic
@@ -108,22 +110,23 @@ class TestProductsService:
assert result.id is not None assert result.id is not None
assert result.name == "new test product" assert result.name == "new test product"
assert result.productor.name == "test productor" assert result.productor.name == "test productor"
def test_create_product_invalidinput( def test_create_product_invalidinput(
self, self,
session: Session, session: Session,
productor: models.Productor productor: models.Productor
): ):
product_create = None product_create = None
with pytest.raises(products_exceptions.ProductCreateError): with pytest.raises(products_exceptions.ProductCreateError):
result = products_service.create_one(session, product_create) result = products_service.create_one(session, product_create)
product_create = products_factory.product_create_factory(productor_id=123) product_create = products_factory.product_create_factory(
productor_id=123)
with pytest.raises(products_exceptions.ProductorNotFoundError): with pytest.raises(products_exceptions.ProductorNotFoundError):
result = products_service.create_one(session, product_create) result = products_service.create_one(session, product_create)
def test_update_product( def test_update_product(
self, self,
session: Session, session: Session,
productor: models.ProductorPublic, productor: models.ProductorPublic,
referer: models.ProductorPublic, referer: models.ProductorPublic,
@@ -134,13 +137,14 @@ class TestProductsService:
productor_id=productor.id, productor_id=productor.id,
) )
product_id = products[0].id product_id = products[0].id
result = products_service.update_one(session, product_id, product_update) result = products_service.update_one(
session, product_id, product_update)
assert result.id == product_id assert result.id == product_id
assert result.name == 'updated test product' assert result.name == 'updated test product'
def test_update_product_notfound( def test_update_product_notfound(
self, self,
session: Session, session: Session,
productor: models.ProductorPublic, productor: models.ProductorPublic,
referer: models.ProductorPublic, referer: models.ProductorPublic,
@@ -151,41 +155,43 @@ class TestProductsService:
) )
product_id = 123 product_id = 123
with pytest.raises(products_exceptions.ProductNotFoundError): with pytest.raises(products_exceptions.ProductNotFoundError):
result = products_service.update_one(session, product_id, product_update) result = products_service.update_one(
session, product_id, product_update)
def test_update_product_invalidinput( def test_update_product_invalidinput(
self, self,
session: Session, session: Session,
productor: models.ProductorPublic, productor: models.ProductorPublic,
products: list[models.ProductPublic] products: list[models.ProductPublic]
): ):
product_id = products[0].id product_id = products[0].id
product_update = products_factory.product_update_factory(productor_id=123)
with pytest.raises(products_exceptions.ProductorNotFoundError):
result = products_service.update_one(session, product_id, product_update)
product_update = products_factory.product_update_factory( product_update = products_factory.product_update_factory(
productor_id=productor.id, productor_id=123)
with pytest.raises(products_exceptions.ProductorNotFoundError):
result = products_service.update_one(
session, product_id, product_update)
product_update = products_factory.product_update_factory(
productor_id=productor.id,
referer_id=123 referer_id=123
) )
def test_delete_product( def test_delete_product(
self, self,
session: Session, session: Session,
products: list[models.ProductPublic] products: list[models.ProductPublic]
): ):
product_id = products[0].id product_id = products[0].id
result = products_service.delete_one(session, product_id) result = products_service.delete_one(session, product_id)
check = products_service.get_one(session, product_id) check = products_service.get_one(session, product_id)
assert check == None assert check is None
def test_delete_product_notfound( def test_delete_product_notfound(
self, self,
session: Session, session: Session,
products: list[models.ProductPublic] products: list[models.ProductPublic]
): ):
product_id = 123 product_id = 123
with pytest.raises(products_exceptions.ProductNotFoundError): with pytest.raises(products_exceptions.ProductNotFoundError):
result = products_service.delete_one(session, product_id) result = products_service.delete_one(session, product_id)

View File

@@ -7,10 +7,11 @@ import src.shipments.service as shipments_service
import src.shipments.exceptions as shipments_exceptions import src.shipments.exceptions as shipments_exceptions
import tests.factories.shipments as shipments_factory import tests.factories.shipments as shipments_factory
class TestShipmentsService: class TestShipmentsService:
def test_get_all_shipments( def test_get_all_shipments(
self, self,
session: Session, session: Session,
shipments: list[models.ShipmentPublic], shipments: list[models.ShipmentPublic],
user: models.UserPublic, user: models.UserPublic,
): ):
@@ -20,49 +21,54 @@ class TestShipmentsService:
assert result == shipments assert result == shipments
def test_get_all_shipments_filter_names( def test_get_all_shipments_filter_names(
self, self,
session: Session, session: Session,
shipments: list[models.ShipmentPublic], shipments: list[models.ShipmentPublic],
user: models.UserPublic, user: models.UserPublic,
): ):
result = shipments_service.get_all(session, user, ['test shipment 1'], [], []) result = shipments_service.get_all(
session, user, ['test shipment 1'], [], [])
assert len(result) == 1 assert len(result) == 1
assert result == [shipments[0]] assert result == [shipments[0]]
def test_get_all_shipments_filter_dates( def test_get_all_shipments_filter_dates(
self, self,
session: Session, session: Session,
shipments: list[models.ShipmentPublic], shipments: list[models.ShipmentPublic],
user: models.UserPublic, user: models.UserPublic,
): ):
result = shipments_service.get_all(session, user, [], ['2025-10-10'], []) result = shipments_service.get_all(
session, user, [], ['2025-10-10'], [])
assert len(result) == 1 assert len(result) == 1
def test_get_all_shipments_filter_forms( def test_get_all_shipments_filter_forms(
self, self,
session: Session, session: Session,
shipments: list[models.ShipmentPublic], shipments: list[models.ShipmentPublic],
forms: list[models.FormPublic], forms: list[models.FormPublic],
user: models.UserPublic, user: models.UserPublic,
): ):
result = shipments_service.get_all(session, user, [], [], [forms[0].name]) result = shipments_service.get_all(
session, user, [], [], [forms[0].name])
assert len(result) == 2 assert len(result) == 2
def test_get_all_shipments_all_filters( def test_get_all_shipments_all_filters(
self, self,
session: Session, session: Session,
shipments: list[models.ShipmentPublic], shipments: list[models.ShipmentPublic],
forms: list[models.FormPublic], forms: list[models.FormPublic],
user: models.UserPublic, user: models.UserPublic,
): ):
result = shipments_service.get_all(session, user, ['test shipment 1'], ['2025-10-10'], [forms[0].name]) result = shipments_service.get_all(session, user, ['test shipment 1'], [
'2025-10-10'], [forms[0].name])
assert len(result) == 1 assert len(result) == 1
def test_get_one_shipment(self, session: Session, shipments: list[models.ShipmentPublic]): def test_get_one_shipment(self, session: Session,
shipments: list[models.ShipmentPublic]):
result = shipments_service.get_one(session, shipments[0].id) result = shipments_service.get_one(session, shipments[0].id)
assert result == shipments[0] assert result == shipments[0]
@@ -70,10 +76,10 @@ class TestShipmentsService:
def test_get_one_shipment_notfound(self, session: Session): def test_get_one_shipment_notfound(self, session: Session):
result = shipments_service.get_one(session, 122) result = shipments_service.get_one(session, 122)
assert result == None assert result is None
def test_create_shipment( def test_create_shipment(
self, self,
session: Session, session: Session,
): ):
shipment_create = shipments_factory.shipment_create_factory( shipment_create = shipments_factory.shipment_create_factory(
@@ -84,17 +90,17 @@ class TestShipmentsService:
assert result.id is not None assert result.id is not None
assert result.name == "new test shipment" assert result.name == "new test shipment"
def test_create_shipment_invalidinput( def test_create_shipment_invalidinput(
self, self,
session: Session, session: Session,
): ):
shipment_create = None shipment_create = None
with pytest.raises(shipments_exceptions.ShipmentCreateError): with pytest.raises(shipments_exceptions.ShipmentCreateError):
result = shipments_service.create_one(session, shipment_create) result = shipments_service.create_one(session, shipment_create)
def test_update_shipment( def test_update_shipment(
self, self,
session: Session, session: Session,
shipments: list[models.ShipmentPublic] shipments: list[models.ShipmentPublic]
): ):
@@ -103,14 +109,15 @@ class TestShipmentsService:
date='2025-12-10', date='2025-12-10',
) )
shipment_id = shipments[0].id shipment_id = shipments[0].id
result = shipments_service.update_one(session, shipment_id, shipment_update) result = shipments_service.update_one(
session, shipment_id, shipment_update)
assert result.id == shipment_id assert result.id == shipment_id
assert result.name == 'updated shipment 1' assert result.name == 'updated shipment 1'
assert result.date == datetime.date(2025, 12, 10) assert result.date == datetime.date(2025, 12, 10)
def test_update_shipment_notfound( def test_update_shipment_notfound(
self, self,
session: Session, session: Session,
): ):
shipment_update = shipments_factory.shipment_update_factory( shipment_update = shipments_factory.shipment_update_factory(
@@ -119,25 +126,25 @@ class TestShipmentsService:
) )
shipment_id = 123 shipment_id = 123
with pytest.raises(shipments_exceptions.ShipmentNotFoundError): with pytest.raises(shipments_exceptions.ShipmentNotFoundError):
result = shipments_service.update_one(session, shipment_id, shipment_update) result = shipments_service.update_one(
session, shipment_id, shipment_update)
def test_delete_shipment( def test_delete_shipment(
self, self,
session: Session, session: Session,
shipments: list[models.ShipmentPublic] shipments: list[models.ShipmentPublic]
): ):
shipment_id = shipments[0].id shipment_id = shipments[0].id
result = shipments_service.delete_one(session, shipment_id) result = shipments_service.delete_one(session, shipment_id)
check = shipments_service.get_one(session, shipment_id) check = shipments_service.get_one(session, shipment_id)
assert check == None assert check is None
def test_delete_shipment_notfound( def test_delete_shipment_notfound(
self, self,
session: Session, session: Session,
shipments: list[models.ShipmentPublic] shipments: list[models.ShipmentPublic]
): ):
shipment_id = 123 shipment_id = 123
with pytest.raises(shipments_exceptions.ShipmentNotFoundError): with pytest.raises(shipments_exceptions.ShipmentNotFoundError):
result = shipments_service.delete_one(session, shipment_id) result = shipments_service.delete_one(session, shipment_id)

View File

@@ -6,30 +6,37 @@ import src.users.service as users_service
import src.users.exceptions as users_exceptions import src.users.exceptions as users_exceptions
import tests.factories.users as users_factory import tests.factories.users as users_factory
class TestUsersService: class TestUsersService:
def test_get_all_users(self, session: Session, users: list[models.UserPublic]): def test_get_all_users(self, session: Session,
users: list[models.UserPublic]):
result = users_service.get_all(session, [], []) result = users_service.get_all(session, [], [])
assert len(result) == 3 assert len(result) == 3
assert result == users assert result == users
def test_get_all_users_filter_names(self, session: Session, users: list[models.UserPublic]): def test_get_all_users_filter_names(
self, session: Session, users: list[models.UserPublic]):
result = users_service.get_all(session, ['test user 1 (admin)'], []) result = users_service.get_all(session, ['test user 1 (admin)'], [])
assert len(result) == 1 assert len(result) == 1
assert result == [users[0]] assert result == [users[0]]
def test_get_all_users_filter_emails(self, session: Session, users: list[models.UserPublic]): def test_get_all_users_filter_emails(
self, session: Session, users: list[models.UserPublic]):
result = users_service.get_all(session, [], ['test1@test.com']) result = users_service.get_all(session, [], ['test1@test.com'])
assert len(result) == 1 assert len(result) == 1
def test_get_all_users_all_filters(self, session: Session, users: list[models.UserPublic]): def test_get_all_users_all_filters(
result = users_service.get_all(session, ['test user 1 (admin)'], ['test1@test.com']) self, session: Session, users: list[models.UserPublic]):
result = users_service.get_all(
session, ['test user 1 (admin)'], ['test1@test.com'])
assert len(result) == 1 assert len(result) == 1
def test_get_one_user(self, session: Session, users: list[models.UserPublic]): def test_get_one_user(self, session: Session,
users: list[models.UserPublic]):
result = users_service.get_one(session, users[0].id) result = users_service.get_one(session, users[0].id)
assert result == users[0] assert result == users[0]
@@ -37,10 +44,10 @@ class TestUsersService:
def test_get_one_user_notfound(self, session: Session): def test_get_one_user_notfound(self, session: Session):
result = users_service.get_one(session, 122) result = users_service.get_one(session, 122)
assert result == None assert result is None
def test_create_user( def test_create_user(
self, self,
session: Session, session: Session,
): ):
user_create = users_factory.user_create_factory( user_create = users_factory.user_create_factory(
@@ -54,17 +61,17 @@ class TestUsersService:
assert result.name == "new test user" assert result.name == "new test user"
assert result.email == "test@test.fr" assert result.email == "test@test.fr"
assert len(result.roles) == 1 assert len(result.roles) == 1
def test_create_user_invalidinput( def test_create_user_invalidinput(
self, self,
session: Session, session: Session,
): ):
user_create = None user_create = None
with pytest.raises(users_exceptions.UserCreateError): with pytest.raises(users_exceptions.UserCreateError):
result = users_service.create_one(session, user_create) result = users_service.create_one(session, user_create)
def test_update_user( def test_update_user(
self, self,
session: Session, session: Session,
users: list[models.UserPublic] users: list[models.UserPublic]
): ):
@@ -79,9 +86,9 @@ class TestUsersService:
assert result.id == user_id assert result.id == user_id
assert result.name == 'updated test user' assert result.name == 'updated test user'
assert result.email == 'test@testttt.fr' assert result.email == 'test@testttt.fr'
def test_update_user_notfound( def test_update_user_notfound(
self, self,
session: Session, session: Session,
): ):
user_update = users_factory.user_update_factory( user_update = users_factory.user_update_factory(
@@ -92,24 +99,23 @@ class TestUsersService:
user_id = 123 user_id = 123
with pytest.raises(users_exceptions.UserNotFoundError): with pytest.raises(users_exceptions.UserNotFoundError):
result = users_service.update_one(session, user_id, user_update) result = users_service.update_one(session, user_id, user_update)
def test_delete_user( def test_delete_user(
self, self,
session: Session, session: Session,
users: list[models.UserPublic] users: list[models.UserPublic]
): ):
user_id = users[0].id user_id = users[0].id
result = users_service.delete_one(session, user_id) result = users_service.delete_one(session, user_id)
check = users_service.get_one(session, user_id) check = users_service.get_one(session, user_id)
assert check == None assert check is None
def test_delete_user_notfound( def test_delete_user_notfound(
self, self,
session: Session, session: Session,
users: list[models.UserPublic] users: list[models.UserPublic]
): ):
user_id = 123 user_id = 123
with pytest.raises(users_exceptions.UserNotFoundError): with pytest.raises(users_exceptions.UserNotFoundError):
result = users_service.delete_one(session, user_id) result = users_service.delete_one(session, user_id)