diff --git a/backend/tests/conftest.py b/backend/tests/conftest.py index 6383466..70fee98 100644 --- a/backend/tests/conftest.py +++ b/backend/tests/conftest.py @@ -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() \ No newline at end of file + engine.dispose() diff --git a/backend/tests/factories/contract_products.py b/backend/tests/factories/contract_products.py index 9836b17..5a43196 100644 --- a/backend/tests/factories/contract_products.py +++ b/backend/tests/factories/contract_products.py @@ -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 \ No newline at end of file + return data diff --git a/backend/tests/factories/contracts.py b/backend/tests/factories/contracts.py index 4454d8a..e8a142e 100644 --- a/backend/tests/factories/contracts.py +++ b/backend/tests/factories/contracts.py @@ -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 \ No newline at end of file + return data diff --git a/backend/tests/factories/forms.py b/backend/tests/factories/forms.py index 2d01563..a84d4df 100644 --- a/backend/tests/factories/forms.py +++ b/backend/tests/factories/forms.py @@ -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) \ No newline at end of file + return models.FormPublic(**data) diff --git a/backend/tests/factories/productors.py b/backend/tests/factories/productors.py index 8e7ee63..5c2553c 100644 --- a/backend/tests/factories/productors.py +++ b/backend/tests/factories/productors.py @@ -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 \ No newline at end of file + return data diff --git a/backend/tests/factories/products.py b/backend/tests/factories/products.py index b9c7af9..d19a430 100644 --- a/backend/tests/factories/products.py +++ b/backend/tests/factories/products.py @@ -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) \ No newline at end of file + return models.ProductPublic(**data) diff --git a/backend/tests/factories/shipments.py b/backend/tests/factories/shipments.py index 18b9181..fd86ffa 100644 --- a/backend/tests/factories/shipments.py +++ b/backend/tests/factories/shipments.py @@ -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 \ No newline at end of file + return data diff --git a/backend/tests/factories/users.py b/backend/tests/factories/users.py index 25257e4..5763198 100644 --- a/backend/tests/factories/users.py +++ b/backend/tests/factories/users.py @@ -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 \ No newline at end of file + return data diff --git a/backend/tests/fixtures.py b/backend/tests/fixtures.py index 6df8012..ad82add 100644 --- a/backend/tests/fixtures.py +++ b/backend/tests/fixtures.py @@ -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 - diff --git a/backend/tests/routers/test_contracts.py b/backend/tests/routers/test_contracts.py index 393cadf..5c6f3d1 100644 --- a/backend/tests/routers/test_contracts.py +++ b/backend/tests/routers/test_contracts.py @@ -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() \ No newline at end of file + app.dependency_overrides.clear() diff --git a/backend/tests/routers/test_forms.py b/backend/tests/routers/test_forms.py index f81de1d..e722e40 100644 --- a/backend/tests/routers/test_forms.py +++ b/backend/tests/routers/test_forms.py @@ -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() \ No newline at end of file + app.dependency_overrides.clear() diff --git a/backend/tests/routers/test_productors.py b/backend/tests/routers/test_productors.py index 83839a5..cd229df 100644 --- a/backend/tests/routers/test_productors.py +++ b/backend/tests/routers/test_productors.py @@ -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() \ No newline at end of file + app.dependency_overrides.clear() diff --git a/backend/tests/routers/test_products.py b/backend/tests/routers/test_products.py index 56fd5b6..ba661d8 100644 --- a/backend/tests/routers/test_products.py +++ b/backend/tests/routers/test_products.py @@ -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() \ No newline at end of file + app.dependency_overrides.clear() diff --git a/backend/tests/routers/test_shipments.py b/backend/tests/routers/test_shipments.py index 3313c91..064f92e 100644 --- a/backend/tests/routers/test_shipments.py +++ b/backend/tests/routers/test_shipments.py @@ -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() \ No newline at end of file + app.dependency_overrides.clear() diff --git a/backend/tests/routers/test_users.py b/backend/tests/routers/test_users.py index 80e32eb..932f3fc 100644 --- a/backend/tests/routers/test_users.py +++ b/backend/tests/routers/test_users.py @@ -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() \ No newline at end of file + app.dependency_overrides.clear() diff --git a/backend/tests/services/test_forms_service.py b/backend/tests/services/test_forms_service.py index 839de8e..f5e1153 100644 --- a/backend/tests/services/test_forms_service.py +++ b/backend/tests/services/test_forms_service.py @@ -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) - diff --git a/backend/tests/services/test_productors_service.py b/backend/tests/services/test_productors_service.py index 21616b8..24fb0fb 100644 --- a/backend/tests/services/test_productors_service.py +++ b/backend/tests/services/test_productors_service.py @@ -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) - diff --git a/backend/tests/services/test_products_service.py b/backend/tests/services/test_products_service.py index edaae0c..6d7fff0 100644 --- a/backend/tests/services/test_products_service.py +++ b/backend/tests/services/test_products_service.py @@ -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) - diff --git a/backend/tests/services/test_shipments_service.py b/backend/tests/services/test_shipments_service.py index 458ace7..96c3a7e 100644 --- a/backend/tests/services/test_shipments_service.py +++ b/backend/tests/services/test_shipments_service.py @@ -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) - diff --git a/backend/tests/services/test_users_service.py b/backend/tests/services/test_users_service.py index 1c398d8..4315c1c 100644 --- a/backend/tests/services/test_users_service.py +++ b/backend/tests/services/test_users_service.py @@ -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) -