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.auth.auth import get_current_user
@pytest.fixture
def mock_session(mocker):
session = mocker.Mock()
def override():
return session
app.dependency_overrides[get_session] = override
yield session
app.dependency_overrides.clear()
@pytest.fixture
def mock_user():
user = models.User(id=1, name='test user', email='test@user.com')
def override():
return user
app.dependency_overrides[get_current_user] = override
yield user
app.dependency_overrides.clear()
@pytest.fixture
def client():
return TestClient(app)
@pytest.fixture(name='session')
def session_fixture():
engine = create_engine(
@@ -55,4 +59,4 @@ def session_fixture():
transaction.rollback()
session.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.products as product_factory
def contract_product_factory(**kwargs):
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(
product_id=1,
shipment_id=1,
@@ -16,6 +18,7 @@ def contract_product_factory(**kwargs):
data.update(kwargs)
return models.ContractProduct(**data)
def contract_product_public_factory(**kwargs):
contract = contract_factory.contract_factory(id=1)
product = product_factory.product_public_factory(id=1)
@@ -31,6 +34,7 @@ def contract_product_public_factory(**kwargs):
data.update(kwargs)
return models.ContractProductPublic(**data)
def contract_product_create_factory(**kwargs):
data = dict(
product_id=1,
@@ -40,6 +44,7 @@ def contract_product_create_factory(**kwargs):
data.update(kwargs)
return models.ContractProductCreate(**data)
def contract_product_update_factory(**kwargs):
data = dict(
product_id=1,
@@ -49,6 +54,7 @@ def contract_product_update_factory(**kwargs):
data.update(kwargs)
return models.ContractProductUpdate(**data)
def contract_product_body_factory(**kwargs):
data = dict(
product_id=1,
@@ -56,4 +62,4 @@ def contract_product_body_factory(**kwargs):
quantity=1,
)
data.update(kwargs)
return data
return data

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,5 +1,6 @@
import src.models as models
def user_factory(**kwargs):
data = dict(
id=1,
@@ -10,6 +11,7 @@ def user_factory(**kwargs):
data.update(kwargs)
return models.User(**data)
def user_public_factory(**kwargs):
data = dict(
id=1,
@@ -20,6 +22,7 @@ def user_public_factory(**kwargs):
data.update(kwargs)
return models.UserPublic(**data)
def user_create_factory(**kwargs):
data = dict(
name="test user",
@@ -29,6 +32,7 @@ def user_create_factory(**kwargs):
data.update(kwargs)
return models.UserCreate(**data)
def user_update_factory(**kwargs):
data = dict(
name="test user",
@@ -38,6 +42,7 @@ def user_update_factory(**kwargs):
data.update(kwargs)
return models.UserUpdate(**data)
def user_body_factory(**kwargs):
data = dict(
name="test user",
@@ -45,4 +50,4 @@ def user_body_factory(**kwargs):
role_names=[],
)
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.users as users_factory
@pytest.fixture
def productor(session: Session) -> models.ProductorPublic:
productor = productors_service.create_one(
@@ -46,8 +47,10 @@ def productors(session: Session) -> models.ProductorPublic:
]
return productors
@pytest.fixture
def products(session: Session, productor: models.ProductorPublic) -> list[models.ProductPublic]:
def products(session: Session,
productor: models.ProductorPublic) -> list[models.ProductPublic]:
products = [
products_service.create_one(
session,
@@ -68,65 +71,70 @@ def products(session: Session, productor: models.ProductorPublic) -> list[models
]
return products
@pytest.fixture
def user(session: Session) -> models.UserPublic:
user = users_service.create_one(
session,
users_factory.user_create_factory(
name='test user',
name='test user',
email='test@test.com',
role_names=['Légumineuses']
)
)
return user
@pytest.fixture
def users(session: Session) -> list[models.UserPublic]:
users = [
users_service.create_one(
session,
users_factory.user_create_factory(
name='test user 1 (admin)',
name='test user 1 (admin)',
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(
session,
users_factory.user_create_factory(
name='test user 2',
name='test user 2',
email='test2@test.com',
role_names=['Légumineuses']
)
),
role_names=['Légumineuses'])),
users_service.create_one(
session,
users_factory.user_create_factory(
name='test user 3',
name='test user 3',
email='test3@test.com',
role_names=['Porc-Agneau']
)
)
]
role_names=['Porc-Agneau']))]
return users
@pytest.fixture
def referer(session: Session) -> models.UserPublic:
referer = users_service.create_one(
session,
users_factory.user_create_factory(
name='test referer',
name='test referer',
email='test@test.com',
role_names=['Légumineuses'],
)
)
return referer
@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_service.create_one(
session,
session,
shipments_factory.shipment_create_factory(
name='test shipment 1',
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(
session,
session,
shipments_factory.shipment_create_factory(
name='test shipment 2',
date=datetime.date(2025, 11, 10),
@@ -146,15 +154,16 @@ def shipments(session: Session, forms: list[models.FormPublic], products: list[m
]
return shipments
@pytest.fixture
def forms(
session: Session,
productor: models.ProductorPublic,
session: Session,
productor: models.ProductorPublic,
referer: models.UserPublic
) -> list[models.FormPublic]:
forms = [
forms_service.create_one(
session,
session,
forms_factory.form_create_factory(
name='test form 1',
productor_id=productor.id,
@@ -163,7 +172,7 @@ def forms(
)
),
forms_service.create_one(
session,
session,
forms_factory.form_create_factory(
name='test form 2',
productor_id=productor.id,
@@ -173,4 +182,3 @@ def forms(
)
]
return forms

View File

@@ -8,6 +8,7 @@ import tests.factories.contract_products as contract_products_factory
from fastapi.exceptions import HTTPException
class TestContracts:
def test_get_all(self, client, mocker, mock_session, mock_user):
mock_results = [
@@ -31,6 +32,7 @@ class TestContracts:
mock_user,
[],
)
def test_get_all_filters(self, client, mocker, mock_session, mock_user):
mock_results = [
contract_factory.contract_public_factory(id=2),
@@ -52,10 +54,15 @@ class TestContracts:
['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():
raise HTTPException(status_code=401)
app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.contracts.service.get_all')
@@ -74,7 +81,7 @@ class TestContracts:
'get_one',
return_value=mock_result
)
mock_is_allowed = mocker.patch.object(
mocker.patch.object(
service,
'is_allowed',
return_value=True
@@ -88,7 +95,7 @@ class TestContracts:
mock_session,
2
)
def test_get_one_notfound(self, client, mocker, mock_session, mock_user):
mock_result = None
mock = mocker.patch.object(
@@ -97,23 +104,27 @@ class TestContracts:
return_value=mock_result
)
mock_is_allowed = mocker.patch.object(
mocker.patch.object(
service,
'is_allowed',
return_value=True
)
response = client.get('/api/contracts/2')
response_data = response.json()
assert response.status_code == 404
mock.assert_called_once_with(
mock_session,
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():
raise HTTPException(status_code=401)
app.dependency_overrides[get_current_user] = unauthorized
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):
contract_body = contract_factory.contract_body_factory(
products=[
contract_products_factory.contract_product_body_factory(product_id=1),
contract_products_factory.contract_product_body_factory(product_id=2),
contract_products_factory.contract_product_body_factory(product_id=3)
contract_products_factory.contract_product_body_factory(
product_id=1
),
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'}]
)
contract_result = contract_factory.contract_factory(
products=[
contract_products_factory.contract_product_factory(product_id=1),
contract_products_factory.contract_product_factory(product_id=2),
contract_products_factory.contract_product_factory(product_id=3)
contract_products_factory.contract_product_factory(
product_id=1
),
contract_products_factory.contract_product_factory(
product_id=2
),
contract_products_factory.contract_product_factory(
product_id=3
)
],
form=form_factory.form_factory(),
cheques=[models.Cheque(name='123123', value='100')]
)
mock_create_one = mocker.patch.object(
mocker.patch.object(
service,
'create_one',
return_value=contract_result
)
mock_add_contract_file = mocker.patch.object(
mocker.patch.object(
service,
'add_contract_file',
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)
assert response.status_code == 200
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):
contract_result = contract_factory.contract_public_factory()
@@ -168,14 +195,13 @@ class TestContracts:
return_value=contract_result
)
mock_is_allowed = mocker.patch.object(
mocker.patch.object(
service,
'is_allowed',
return_value=True
)
response = client.delete('/api/contracts/2')
response_data = response.json()
assert response.status_code == 200
mock.assert_called_once_with(
@@ -183,7 +209,12 @@ class TestContracts:
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
mock = mocker.patch.object(
@@ -192,14 +223,13 @@ class TestContracts:
return_value=contract_result
)
mock_is_allowed = mocker.patch.object(
mocker.patch.object(
service,
'is_allowed',
return_value=True
)
response = client.delete('/api/contracts/2')
response_data = response.json()
assert response.status_code == 404
mock.assert_called_once_with(
@@ -207,11 +237,15 @@ class TestContracts:
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():
raise HTTPException(status_code=401)
contract_body = contract_factory.contract_body_factory()
app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.contracts.service.delete_one')
@@ -220,4 +254,4 @@ class TestContracts:
assert response.status_code == 401
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
import src.messages as messages
class TestForms:
def test_get_all(self, client, mocker, mock_session, mock_user):
mock_results = [
@@ -32,6 +33,7 @@ class TestForms:
False,
mock_user,
)
def test_get_all_filters(self, client, mocker, mock_session, mock_user):
mock_results = [
form_factory.form_public_factory(name="test 2", id=2),
@@ -42,7 +44,8 @@ class TestForms:
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()
assert response.status_code == 200
assert response_data[0]['id'] == 2
@@ -55,10 +58,15 @@ class TestForms:
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():
raise HTTPException(status_code=401)
app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.forms.service.get_all')
@@ -87,7 +95,7 @@ class TestForms:
mock_session,
2
)
def test_get_one_notfound(self, client, mocker, mock_session, mock_user):
mock_result = None
mock = mocker.patch.object(
@@ -102,8 +110,7 @@ class TestForms:
mock_session,
2
)
def test_create_one(self, client, mocker, mock_session, mock_user):
form_body = form_factory.form_body_factory(name='test form create')
form_create = form_factory.form_create_factory(name='test form create')
@@ -124,16 +131,17 @@ class TestForms:
mock_session,
form_create
)
def test_create_one_referer_notfound(self, client, mocker, mock_session, mock_user):
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)
def test_create_one_referer_notfound(
self, client, mocker, mock_session, mock_user):
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(
service,
'create_one',
side_effect=forms_exceptions.UserNotFoundError(messages.Messages.not_found('referer'))
)
service, 'create_one', side_effect=forms_exceptions.UserNotFoundError(
messages.Messages.not_found('referer')))
response = client.post('/api/forms', json=form_body)
response_data = response.json()
@@ -144,15 +152,16 @@ class TestForms:
form_create
)
def test_create_one_productor_notfound(self, client, mocker, mock_session, mock_user):
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)
def test_create_one_productor_notfound(
self, client, mocker, mock_session, mock_user):
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(
service,
'create_one',
side_effect=forms_exceptions.ProductorNotFoundError(messages.Messages.not_found('productor'))
)
service, 'create_one', side_effect=forms_exceptions.ProductorNotFoundError(
messages.Messages.not_found('productor')))
response = client.post('/api/forms', json=form_body)
response_data = response.json()
@@ -163,11 +172,16 @@ class TestForms:
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():
raise HTTPException(status_code=401)
form_body = form_factory.form_body_factory(name='test form create')
app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.forms.service.create_one')
@@ -200,35 +214,18 @@ class TestForms:
form_update
)
def test_update_one_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.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(
def test_update_one_notfound(
self,
client,
mocker,
mock_session,
2,
form_update
)
def test_update_one_referer_notfound(self, client, mocker, mock_session, mock_user):
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.UserNotFoundError(messages.Messages.not_found('referer'))
)
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()
@@ -240,15 +237,14 @@ class TestForms:
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_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'))
)
service, 'update_one', side_effect=forms_exceptions.UserNotFoundError(
messages.Messages.not_found('referer')))
response = client.put('/api/forms/2', json=form_body)
response_data = response.json()
@@ -260,11 +256,35 @@ class TestForms:
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():
raise HTTPException(status_code=401)
form_body = form_factory.form_body_factory(name='test form update')
app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.forms.service.update_one')
@@ -294,14 +314,17 @@ class TestForms:
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
mock = mocker.patch.object(
service,
'delete_one',
side_effect=forms_exceptions.FormNotFoundError(messages.Messages.not_found('form'))
)
service, 'delete_one', side_effect=forms_exceptions.FormNotFoundError(
messages.Messages.not_found('form')))
response = client.delete('/api/forms/2')
response_data = response.json()
@@ -312,10 +335,15 @@ class TestForms:
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():
raise HTTPException(status_code=401)
app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.forms.service.delete_one')
@@ -324,4 +352,4 @@ class TestForms:
assert response.status_code == 401
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
class TestProductors:
def test_get_all(self, client, mocker, mock_session, mock_user):
mock_results = [
@@ -34,6 +35,7 @@ class TestProductors:
[],
[],
)
def test_get_all_filters(self, client, mocker, mock_session, mock_user):
mock_results = [
productor_factory.productor_public_factory(name="test 2", id=2),
@@ -44,7 +46,8 @@ class TestProductors:
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()
assert response.status_code == 200
assert response_data[0]['id'] == 2
@@ -56,10 +59,15 @@ class TestProductors:
['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():
raise HTTPException(status_code=401)
app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.productors.service.get_all')
@@ -71,7 +79,8 @@ class TestProductors:
app.dependency_overrides.clear()
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(
service,
@@ -88,7 +97,7 @@ class TestProductors:
mock_session,
2
)
def test_get_one_notfound(self, client, mocker, mock_session, mock_user):
mock_result = None
mock = mocker.patch.object(
@@ -103,11 +112,16 @@ class TestProductors:
mock_session,
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():
raise HTTPException(status_code=401)
app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.productors.service.get_one')
@@ -117,11 +131,14 @@ class TestProductors:
mock.assert_not_called()
app.dependency_overrides.clear()
def test_create_one(self, client, mocker, mock_session, mock_user):
productor_body = productor_factory.productor_body_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')
productor_body = productor_factory.productor_body_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(
service,
@@ -139,11 +156,17 @@ class TestProductors:
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():
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
mock = mocker.patch('src.productors.service.create_one')
@@ -155,9 +178,12 @@ class TestProductors:
app.dependency_overrides.clear()
def test_update_one(self, 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 = productor_factory.productor_public_factory(name='test productor update')
productor_body = productor_factory.productor_body_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(
service,
@@ -176,16 +202,21 @@ class TestProductors:
productor_update
)
def test_update_one_notfound(self, 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')
def test_update_one_notfound(
self,
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
mock = mocker.patch.object(
service,
'update_one',
side_effect=exceptions.ProductorNotFoundError(messages.Messages.not_found('productor'))
)
service, 'update_one', side_effect=exceptions.ProductorNotFoundError(
messages.Messages.not_found('productor')))
response = client.put('/api/productors/2', json=productor_body)
response_data = response.json()
@@ -197,11 +228,17 @@ class TestProductors:
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():
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
mock = mocker.patch('src.productors.service.update_one')
@@ -213,7 +250,8 @@ class TestProductors:
app.dependency_overrides.clear()
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(
service,
@@ -231,14 +269,17 @@ class TestProductors:
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
mock = mocker.patch.object(
service,
'delete_one',
side_effect=exceptions.ProductorNotFoundError(messages.Messages.not_found('productor'))
)
service, 'delete_one', side_effect=exceptions.ProductorNotFoundError(
messages.Messages.not_found('productor')))
response = client.delete('/api/productors/2')
response_data = response.json()
@@ -249,11 +290,17 @@ class TestProductors:
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():
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
mock = mocker.patch('src.productors.service.delete_one')
@@ -262,4 +309,4 @@ class TestProductors:
assert response.status_code == 401
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
class TestProducts:
def test_get_all(self, client, mocker, mock_session, mock_user):
mock_results = [
@@ -32,6 +33,7 @@ class TestProducts:
[],
[]
)
def test_get_all_filters(self, client, mocker, mock_session, mock_user):
mock_results = [
product_factory.product_public_factory(name="test 2", id=2),
@@ -55,10 +57,15 @@ class TestProducts:
['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():
raise HTTPException(status_code=401)
app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.products.service.get_all')
@@ -70,7 +77,8 @@ class TestProducts:
app.dependency_overrides.clear()
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(
service,
@@ -87,7 +95,7 @@ class TestProducts:
mock_session,
2
)
def test_get_one_notfound(self, client, mocker, mock_session, mock_user):
mock_result = None
mock = mocker.patch.object(
@@ -102,11 +110,16 @@ class TestProducts:
mock_session,
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():
raise HTTPException(status_code=401)
app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.products.service.get_one')
@@ -116,11 +129,14 @@ class TestProducts:
mock.assert_not_called()
app.dependency_overrides.clear()
def test_create_one(self, client, mocker, mock_session, mock_user):
product_body = product_factory.product_body_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')
product_body = product_factory.product_body_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(
service,
@@ -138,11 +154,17 @@ class TestProducts:
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():
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
mock = mocker.patch('src.products.service.create_one')
@@ -154,9 +176,12 @@ class TestProducts:
app.dependency_overrides.clear()
def test_update_one(self, 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 = product_factory.product_public_factory(name='test product update')
product_body = product_factory.product_body_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(
service,
@@ -175,9 +200,16 @@ class TestProducts:
product_update
)
def test_update_one_notfound(self, 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')
def test_update_one_notfound(
self,
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
mock = mocker.patch.object(
@@ -196,11 +228,17 @@ class TestProducts:
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():
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
mock = mocker.patch('src.products.service.update_one')
@@ -212,7 +250,8 @@ class TestProducts:
app.dependency_overrides.clear()
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(
service,
@@ -230,7 +269,12 @@ class TestProducts:
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
mock = mocker.patch.object(
@@ -248,11 +292,17 @@ class TestProducts:
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():
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
mock = mocker.patch('src.products.service.delete_one')
@@ -261,4 +311,4 @@ class TestProducts:
assert response.status_code == 401
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
class TestShipments:
def test_get_all(self, client, mocker, mock_session, mock_user):
mock_results = [
@@ -33,6 +34,7 @@ class TestShipments:
[],
[],
)
def test_get_all_filters(self, client, mocker, mock_session, mock_user):
mock_results = [
shipment_factory.shipment_public_factory(name="test 2", id=2),
@@ -43,7 +45,8 @@ class TestShipments:
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()
assert response.status_code == 200
assert response_data[0]['id'] == 2
@@ -56,10 +59,15 @@ class TestShipments:
['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():
raise HTTPException(status_code=401)
app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.shipments.service.get_all')
@@ -71,7 +79,8 @@ class TestShipments:
app.dependency_overrides.clear()
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(
service,
@@ -88,7 +97,7 @@ class TestShipments:
mock_session,
2
)
def test_get_one_notfound(self, client, mocker, mock_session, mock_user):
mock_result = None
mock = mocker.patch.object(
@@ -103,11 +112,16 @@ class TestShipments:
mock_session,
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():
raise HTTPException(status_code=401)
app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.shipments.service.get_one')
@@ -117,11 +131,14 @@ class TestShipments:
mock.assert_not_called()
app.dependency_overrides.clear()
def test_create_one(self, client, mocker, mock_session, mock_user):
shipment_body = shipment_factory.shipment_body_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')
shipment_body = shipment_factory.shipment_body_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(
service,
@@ -139,11 +156,17 @@ class TestShipments:
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():
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
mock = mocker.patch('src.shipments.service.create_one')
@@ -155,9 +178,12 @@ class TestShipments:
app.dependency_overrides.clear()
def test_update_one(self, 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')
shipment_result = shipment_factory.shipment_public_factory(name='test shipment update')
shipment_body = shipment_factory.shipment_body_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(
service,
@@ -176,15 +202,20 @@ class TestShipments:
shipment_update
)
def test_update_one_notfound(self, 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')
def test_update_one_notfound(
self,
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(
service,
'update_one',
side_effect=exceptions.ShipmentNotFoundError(messages.Messages.not_found('shipment'))
)
service, 'update_one', side_effect=exceptions.ShipmentNotFoundError(
messages.Messages.not_found('shipment')))
response = client.put('/api/shipments/2', json=shipment_body)
response_data = response.json()
@@ -196,11 +227,17 @@ class TestShipments:
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():
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
mock = mocker.patch('src.shipments.service.update_one')
@@ -212,7 +249,8 @@ class TestShipments:
app.dependency_overrides.clear()
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(
service,
@@ -230,14 +268,17 @@ class TestShipments:
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
mock = mocker.patch.object(
service,
'delete_one',
side_effect=exceptions.ShipmentNotFoundError(messages.Messages.not_found('shipment'))
)
service, 'delete_one', side_effect=exceptions.ShipmentNotFoundError(
messages.Messages.not_found('shipment')))
response = client.delete('/api/shipments/2')
response_data = response.json()
@@ -248,11 +289,17 @@ class TestShipments:
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():
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
mock = mocker.patch('src.shipments.service.delete_one')
@@ -261,4 +308,4 @@ class TestShipments:
assert response.status_code == 401
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
class TestUsers:
def test_get_all(self, client, mocker, mock_session, mock_user):
mock_results = [
@@ -30,6 +31,7 @@ class TestUsers:
[],
[],
)
def test_get_all_filters(self, client, mocker, mock_session, mock_user):
mock_results = [
user_factory.user_public_factory(name="test 2", id=2),
@@ -51,10 +53,15 @@ class TestUsers:
['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():
raise HTTPException(status_code=401)
app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.users.service.get_all')
@@ -83,7 +90,7 @@ class TestUsers:
mock_session,
2
)
def test_get_one_notfound(self, client, mocker, mock_session, mock_user):
mock_result = None
mock = mocker.patch.object(
@@ -98,11 +105,16 @@ class TestUsers:
mock_session,
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():
raise HTTPException(status_code=401)
app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.users.service.get_one')
@@ -112,7 +124,7 @@ class TestUsers:
mock.assert_not_called()
app.dependency_overrides.clear()
def test_create_one(self, client, mocker, mock_session, mock_user):
user_body = user_factory.user_body_factory(name='test user create')
user_create = user_factory.user_create_factory(name='test user create')
@@ -134,11 +146,16 @@ class TestUsers:
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():
raise HTTPException(status_code=401)
user_body = user_factory.user_body_factory(name='test user create')
app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.users.service.create_one')
@@ -171,7 +188,12 @@ class TestUsers:
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_update = user_factory.user_update_factory(name='test user update')
user_result = None
@@ -192,11 +214,16 @@ class TestUsers:
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():
raise HTTPException(status_code=401)
user_body = user_factory.user_body_factory(name='test user update')
app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.users.service.update_one')
@@ -226,7 +253,12 @@ class TestUsers:
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
mock = mocker.patch.object(
@@ -244,11 +276,16 @@ class TestUsers:
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():
raise HTTPException(status_code=401)
user_body = user_factory.user_body_factory(name='test user delete')
app.dependency_overrides[get_current_user] = unauthorized
mock = mocker.patch('src.users.service.delete_one')
@@ -257,4 +294,4 @@ class TestUsers:
assert response.status_code == 401
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 tests.factories.forms as forms_factory
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)
assert len(result) == 2
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)
assert len(result) == 2
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)
assert len(result) == 1
def test_get_all_forms_all_filters(self, session: Session, forms: list[models.FormPublic]):
result = forms_service.get_all(session, ['test season 1'], ['test productor'], True)
def test_get_all_forms_all_filters(
self, session: Session, forms: list[models.FormPublic]):
result = forms_service.get_all(
session, ['test season 1'], ['test productor'], True)
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)
assert result == forms[0]
@@ -37,10 +44,10 @@ class TestFormsService:
def test_get_one_form_notfound(self, session: Session):
result = forms_service.get_one(session, 122)
assert result == None
assert result is None
def test_create_form(
self,
self,
session: Session,
productor: models.ProductorPublic,
referer: models.ProductorPublic
@@ -56,10 +63,10 @@ class TestFormsService:
assert result.id is not None
assert result.name == "new test form"
assert result.productor.name == "test productor"
def test_create_form_invalidinput(
self,
session: Session,
self,
session: Session,
productor: models.Productor
):
form_create = None
@@ -69,17 +76,16 @@ class TestFormsService:
form_create = forms_factory.form_create_factory(productor_id=123)
with pytest.raises(forms_exceptions.ProductorNotFoundError):
result = forms_service.create_one(session, form_create)
form_create = forms_factory.form_create_factory(
productor_id=productor.id,
productor_id=productor.id,
referer_id=123
)
with pytest.raises(forms_exceptions.UserNotFoundError):
result = forms_service.create_one(session, form_create)
def test_update_form(
self,
self,
session: Session,
productor: models.ProductorPublic,
referer: models.ProductorPublic,
@@ -97,9 +103,9 @@ class TestFormsService:
assert result.id == form_id
assert result.name == 'updated test form'
assert result.season == 'updated test season'
def test_update_form_notfound(
self,
self,
session: Session,
productor: models.ProductorPublic,
referer: models.ProductorPublic,
@@ -113,42 +119,41 @@ class TestFormsService:
form_id = 123
with pytest.raises(forms_exceptions.FormNotFoundError):
result = forms_service.update_one(session, form_id, form_update)
def test_update_form_invalidinput(
self,
session: Session,
productor: models.ProductorPublic,
self,
session: Session,
productor: models.ProductorPublic,
forms: list[models.FormPublic]
):
form_id = forms[0].id
form_update = forms_factory.form_update_factory(productor_id=123)
with pytest.raises(forms_exceptions.ProductorNotFoundError):
result = forms_service.update_one(session, form_id, form_update)
form_update = forms_factory.form_update_factory(
productor_id=productor.id,
productor_id=productor.id,
referer_id=123
)
with pytest.raises(forms_exceptions.UserNotFoundError):
result = forms_service.update_one(session, form_id, form_update)
def test_delete_form(
self,
session: Session,
self,
session: Session,
forms: list[models.FormPublic]
):
form_id = forms[0].id
result = forms_service.delete_one(session, form_id)
check = forms_service.get_one(session, form_id)
assert check == None
assert check is None
def test_delete_form_notfound(
self,
session: Session,
self,
session: Session,
forms: list[models.FormPublic]
):
form_id = 123
with pytest.raises(forms_exceptions.FormNotFoundError):
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 tests.factories.productors as productors_factory
class TestProductorsService:
def test_get_all_productors(
self,
session: Session,
self,
session: Session,
productors: list[models.ProductorPublic],
user: models.UserPublic
):
@@ -19,51 +20,53 @@ class TestProductorsService:
assert result == [productors[0]]
def test_get_all_productors_filter_names(
self,
session: Session,
self,
session: Session,
productors: list[models.ProductorPublic],
user: models.UserPublic
):
result = productors_service.get_all(
session,
user,
['test productor 1'],
session,
user,
['test productor 1'],
[]
)
assert len(result) == 1
def test_get_all_productors_filter_types(
self,
session: Session,
self,
session: Session,
productors: list[models.ProductorPublic],
user: models.UserPublic
):
result = productors_service.get_all(
session,
user,
[],
['Légumineuses'],
session,
user,
[],
['Légumineuses'],
)
assert len(result) == 1
def test_get_all_productors_all_filters(
self,
session: Session,
self,
session: Session,
productors: list[models.ProductorPublic],
user: models.UserPublic
):
result = productors_service.get_all(
session,
user,
['test productor 1'],
['Légumineuses'],
session,
user,
['test productor 1'],
['Légumineuses'],
)
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)
assert result == productors[0]
@@ -71,10 +74,10 @@ class TestProductorsService:
def test_get_one_productor_notfound(self, session: Session):
result = productors_service.get_one(session, 122)
assert result == None
assert result is None
def test_create_productor(
self,
self,
session: Session,
referer: models.ProductorPublic
):
@@ -85,17 +88,17 @@ class TestProductorsService:
assert result.id is not None
assert result.name == "new test productor"
def test_create_productor_invalidinput(
self,
session: Session,
self,
session: Session,
):
productor_create = None
with pytest.raises(productors_exceptions.ProductorCreateError):
result = productors_service.create_one(session, productor_create)
def test_update_productor(
self,
self,
session: Session,
referer: models.ProductorPublic,
productors: list[models.ProductorPublic]
@@ -104,13 +107,14 @@ class TestProductorsService:
name='updated test productor',
)
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.name == 'updated test productor'
def test_update_productor_notfound(
self,
self,
session: Session,
referer: models.ProductorPublic,
):
@@ -119,25 +123,25 @@ class TestProductorsService:
)
productor_id = 123
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(
self,
session: Session,
self,
session: Session,
productors: list[models.ProductorPublic]
):
productor_id = productors[0].id
result = productors_service.delete_one(session, productor_id)
check = productors_service.get_one(session, productor_id)
assert check == None
assert check is None
def test_delete_productor_notfound(
self,
session: Session,
self,
session: Session,
productors: list[models.ProductorPublic]
):
productor_id = 123
with pytest.raises(productors_exceptions.ProductorNotFoundError):
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 tests.factories.products as products_factory
class TestProductsService:
def test_get_all_products(
self,
session: Session,
self,
session: Session,
products: list[models.ProductPublic],
user: models.UserPublic
):
@@ -19,16 +20,16 @@ class TestProductsService:
assert result == products
def test_get_all_products_filter_productors(
self,
session: Session,
self,
session: Session,
products: list[models.ProductPublic],
user: models.UserPublic
):
result = products_service.get_all(
session,
user,
[],
['test productor'],
session,
user,
[],
['test productor'],
[]
)
@@ -36,54 +37,55 @@ class TestProductsService:
assert result == products
def test_get_all_products_filter_names(
self,
session: Session,
self,
session: Session,
products: list[models.ProductPublic],
user: models.UserPublic
):
result = products_service.get_all(
session,
user,
['product 1 occasionnal'],
[],
session,
user,
['product 1 occasionnal'],
[],
[]
)
assert len(result) == 1
def test_get_all_products_filter_types(
self,
session: Session,
self,
session: Session,
products: list[models.ProductPublic],
user: models.UserPublic
):
result = products_service.get_all(
session,
user,
[],
[],
session,
user,
[],
[],
['1']
)
assert len(result) == 1
def test_get_all_products_all_filters(
self,
session: Session,
self,
session: Session,
products: list[models.ProductPublic],
user: models.UserPublic
):
result = products_service.get_all(
session,
user,
['product 1 occasionnal'],
['test productor'],
session,
user,
['product 1 occasionnal'],
['test productor'],
['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)
assert result == products[0]
@@ -91,10 +93,10 @@ class TestProductsService:
def test_get_one_product_notfound(self, session: Session):
result = products_service.get_one(session, 122)
assert result == None
assert result is None
def test_create_product(
self,
self,
session: Session,
productor: models.ProductorPublic,
referer: models.ProductorPublic
@@ -108,22 +110,23 @@ class TestProductsService:
assert result.id is not None
assert result.name == "new test product"
assert result.productor.name == "test productor"
def test_create_product_invalidinput(
self,
session: Session,
self,
session: Session,
productor: models.Productor
):
product_create = None
with pytest.raises(products_exceptions.ProductCreateError):
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):
result = products_service.create_one(session, product_create)
def test_update_product(
self,
self,
session: Session,
productor: models.ProductorPublic,
referer: models.ProductorPublic,
@@ -134,13 +137,14 @@ class TestProductsService:
productor_id=productor.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.name == 'updated test product'
def test_update_product_notfound(
self,
self,
session: Session,
productor: models.ProductorPublic,
referer: models.ProductorPublic,
@@ -151,41 +155,43 @@ class TestProductsService:
)
product_id = 123
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(
self,
session: Session,
productor: models.ProductorPublic,
self,
session: Session,
productor: models.ProductorPublic,
products: list[models.ProductPublic]
):
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(
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
)
def test_delete_product(
self,
session: Session,
self,
session: Session,
products: list[models.ProductPublic]
):
product_id = products[0].id
result = products_service.delete_one(session, product_id)
check = products_service.get_one(session, product_id)
assert check == None
assert check is None
def test_delete_product_notfound(
self,
session: Session,
self,
session: Session,
products: list[models.ProductPublic]
):
product_id = 123
with pytest.raises(products_exceptions.ProductNotFoundError):
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 tests.factories.shipments as shipments_factory
class TestShipmentsService:
def test_get_all_shipments(
self,
session: Session,
self,
session: Session,
shipments: list[models.ShipmentPublic],
user: models.UserPublic,
):
@@ -20,49 +21,54 @@ class TestShipmentsService:
assert result == shipments
def test_get_all_shipments_filter_names(
self,
session: Session,
self,
session: Session,
shipments: list[models.ShipmentPublic],
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 result == [shipments[0]]
def test_get_all_shipments_filter_dates(
self,
session: Session,
self,
session: Session,
shipments: list[models.ShipmentPublic],
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
def test_get_all_shipments_filter_forms(
self,
session: Session,
self,
session: Session,
shipments: list[models.ShipmentPublic],
forms: list[models.FormPublic],
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
def test_get_all_shipments_all_filters(
self,
session: Session,
self,
session: Session,
shipments: list[models.ShipmentPublic],
forms: list[models.FormPublic],
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
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)
assert result == shipments[0]
@@ -70,10 +76,10 @@ class TestShipmentsService:
def test_get_one_shipment_notfound(self, session: Session):
result = shipments_service.get_one(session, 122)
assert result == None
assert result is None
def test_create_shipment(
self,
self,
session: Session,
):
shipment_create = shipments_factory.shipment_create_factory(
@@ -84,17 +90,17 @@ class TestShipmentsService:
assert result.id is not None
assert result.name == "new test shipment"
def test_create_shipment_invalidinput(
self,
session: Session,
self,
session: Session,
):
shipment_create = None
with pytest.raises(shipments_exceptions.ShipmentCreateError):
result = shipments_service.create_one(session, shipment_create)
def test_update_shipment(
self,
self,
session: Session,
shipments: list[models.ShipmentPublic]
):
@@ -103,14 +109,15 @@ class TestShipmentsService:
date='2025-12-10',
)
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.name == 'updated shipment 1'
assert result.date == datetime.date(2025, 12, 10)
def test_update_shipment_notfound(
self,
self,
session: Session,
):
shipment_update = shipments_factory.shipment_update_factory(
@@ -119,25 +126,25 @@ class TestShipmentsService:
)
shipment_id = 123
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(
self,
session: Session,
self,
session: Session,
shipments: list[models.ShipmentPublic]
):
shipment_id = shipments[0].id
result = shipments_service.delete_one(session, shipment_id)
check = shipments_service.get_one(session, shipment_id)
assert check == None
assert check is None
def test_delete_shipment_notfound(
self,
session: Session,
self,
session: Session,
shipments: list[models.ShipmentPublic]
):
shipment_id = 123
with pytest.raises(shipments_exceptions.ShipmentNotFoundError):
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 tests.factories.users as users_factory
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, [], [])
assert len(result) == 3
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)'], [])
assert len(result) == 1
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'])
assert len(result) == 1
def test_get_all_users_all_filters(self, session: Session, users: list[models.UserPublic]):
result = users_service.get_all(session, ['test user 1 (admin)'], ['test1@test.com'])
def test_get_all_users_all_filters(
self, session: Session, users: list[models.UserPublic]):
result = users_service.get_all(
session, ['test user 1 (admin)'], ['test1@test.com'])
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)
assert result == users[0]
@@ -37,10 +44,10 @@ class TestUsersService:
def test_get_one_user_notfound(self, session: Session):
result = users_service.get_one(session, 122)
assert result == None
assert result is None
def test_create_user(
self,
self,
session: Session,
):
user_create = users_factory.user_create_factory(
@@ -54,17 +61,17 @@ class TestUsersService:
assert result.name == "new test user"
assert result.email == "test@test.fr"
assert len(result.roles) == 1
def test_create_user_invalidinput(
self,
session: Session,
self,
session: Session,
):
user_create = None
with pytest.raises(users_exceptions.UserCreateError):
result = users_service.create_one(session, user_create)
def test_update_user(
self,
self,
session: Session,
users: list[models.UserPublic]
):
@@ -79,9 +86,9 @@ class TestUsersService:
assert result.id == user_id
assert result.name == 'updated test user'
assert result.email == 'test@testttt.fr'
def test_update_user_notfound(
self,
self,
session: Session,
):
user_update = users_factory.user_update_factory(
@@ -92,24 +99,23 @@ class TestUsersService:
user_id = 123
with pytest.raises(users_exceptions.UserNotFoundError):
result = users_service.update_one(session, user_id, user_update)
def test_delete_user(
self,
session: Session,
self,
session: Session,
users: list[models.UserPublic]
):
user_id = users[0].id
result = users_service.delete_one(session, user_id)
check = users_service.get_one(session, user_id)
assert check == None
assert check is None
def test_delete_user_notfound(
self,
session: Session,
self,
session: Session,
users: list[models.UserPublic]
):
user_id = 123
with pytest.raises(users_exceptions.UserNotFoundError):
result = users_service.delete_one(session, user_id)