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

@@ -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()