fix tests

This commit is contained in:
Julien Aldon
2026-03-06 11:26:02 +01:00
parent b4b4fa7643
commit c27c7598b5
10 changed files with 586 additions and 147 deletions

View File

@@ -2,13 +2,18 @@ import src.users.exceptions as exceptions
import src.users.service as service
import tests.factories.users as user_factory
from fastapi.exceptions import HTTPException
from src import models
from src.auth.auth import get_current_user
from src.main import app
class TestUsers:
def test_get_all(self, client, mocker, mock_session, mock_user):
def test_get_all(
self,
client,
mocker,
mock_session,
mock_user,
):
mock_results = [
user_factory.user_public_factory(name="test 1", id=1),
user_factory.user_public_factory(name="test 2", id=2),
@@ -30,8 +35,15 @@ class TestUsers:
[],
[],
)
assert mock_user
def test_get_all_filters(self, client, mocker, mock_session, mock_user):
def test_get_all_filters(
self,
client,
mocker,
mock_session,
mock_user,
):
mock_results = [
user_factory.user_public_factory(name="test 2", id=2),
]
@@ -40,7 +52,6 @@ class TestUsers:
'get_all',
return_value=mock_results
)
response = client.get('/api/users?emails=test@test.test&names=test 2')
response_data = response.json()
assert response.status_code == 200
@@ -51,13 +62,13 @@ class TestUsers:
['test 2'],
['test@test.test'],
)
assert mock_user
def test_get_all_unauthorized(
self,
client,
mocker,
mock_session,
mock_user):
self,
client,
mocker,
):
def unauthorized():
raise HTTPException(status_code=401)
@@ -71,7 +82,13 @@ class TestUsers:
app.dependency_overrides.clear()
def test_get_one(self, client, mocker, mock_session, mock_user):
def test_get_one(
self,
client,
mocker,
mock_session,
mock_user,
):
mock_result = user_factory.user_public_factory(name="test 2", id=2)
mock = mocker.patch.object(
@@ -79,6 +96,11 @@ class TestUsers:
'get_one',
return_value=mock_result
)
mock_is_allowed = mocker.patch.object(
service,
'is_allowed',
return_value=True
)
response = client.get('/api/users/2')
response_data = response.json()
@@ -89,28 +111,43 @@ class TestUsers:
mock_session,
2
)
mock_is_allowed.assert_called_once_with(
mock_user
)
def test_get_one_notfound(self, client, mocker, mock_session, mock_user):
def test_get_one_notfound(
self,
client,
mocker,
mock_session,
mock_user,
):
mock_result = None
mock = mocker.patch.object(
service,
'get_one',
return_value=mock_result
)
mock_is_allowed = mocker.patch.object(
service,
'is_allowed',
return_value=True
)
response = client.get('/api/users/2')
response_data = response.json()
assert response.status_code == 404
mock.assert_called_once_with(
mock_session,
2
)
mock_is_allowed.assert_called_once_with(
mock_user
)
def test_get_one_unauthorized(
self,
client,
mocker,
mock_session,
mock_user):
self,
client,
mocker,
):
def unauthorized():
raise HTTPException(status_code=401)
@@ -124,7 +161,13 @@ class TestUsers:
app.dependency_overrides.clear()
def test_create_one(self, client, mocker, mock_session, mock_user):
def test_create_one(
self,
client,
mocker,
mock_session,
mock_user,
):
user_body = user_factory.user_body_factory(name='test user create')
user_create = user_factory.user_create_factory(name='test user create')
user_result = user_factory.user_public_factory(name='test user create')
@@ -134,6 +177,11 @@ class TestUsers:
'create_one',
return_value=user_result
)
mock_is_allowed = mocker.patch.object(
service,
'is_allowed',
return_value=True
)
response = client.post('/api/users', json=user_body)
response_data = response.json()
@@ -144,13 +192,15 @@ class TestUsers:
mock_session,
user_create
)
mock_is_allowed.assert_called_once_with(
mock_user
)
def test_create_one_unauthorized(
self,
client,
mocker,
mock_session,
mock_user):
self,
client,
mocker,
):
def unauthorized():
raise HTTPException(status_code=401)
user_body = user_factory.user_body_factory(name='test user create')
@@ -165,7 +215,13 @@ class TestUsers:
app.dependency_overrides.clear()
def test_update_one(self, client, mocker, mock_session, mock_user):
def test_update_one(
self,
client,
mocker,
mock_session,
mock_user,
):
user_body = user_factory.user_body_factory(name='test user update')
user_update = user_factory.user_update_factory(name='test user update')
user_result = user_factory.user_public_factory(name='test user update')
@@ -175,6 +231,11 @@ class TestUsers:
'update_one',
return_value=user_result
)
mock_is_allowed = mocker.patch.object(
service,
'is_allowed',
return_value=True
)
response = client.put('/api/users/2', json=user_body)
response_data = response.json()
@@ -186,25 +247,32 @@ class TestUsers:
2,
user_update
)
mock_is_allowed.assert_called_once_with(
mock_user
)
def test_update_one_notfound(
self,
client,
mocker,
mock_session,
mock_user):
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
mock = mocker.patch.object(
service,
'update_one',
side_effect=exceptions.UserNotFoundError('User 2 not found')
)
mock_is_allowed = mocker.patch.object(
service,
'is_allowed',
return_value=True
)
response = client.put('/api/users/2', json=user_body)
response_data = response.json()
assert response.status_code == 404
mock.assert_called_once_with(
@@ -212,13 +280,15 @@ class TestUsers:
2,
user_update
)
mock_is_allowed.assert_called_once_with(
mock_user
)
def test_update_one_unauthorized(
self,
client,
mocker,
mock_session,
mock_user):
self,
client,
mocker,
):
def unauthorized():
raise HTTPException(status_code=401)
user_body = user_factory.user_body_factory(name='test user update')
@@ -233,7 +303,13 @@ class TestUsers:
app.dependency_overrides.clear()
def test_delete_one(self, client, mocker, mock_session, mock_user):
def test_delete_one(
self,
client,
mocker,
mock_session,
mock_user,
):
user_result = user_factory.user_public_factory(name='test user delete')
mock = mocker.patch.object(
@@ -241,6 +317,11 @@ class TestUsers:
'delete_one',
return_value=user_result
)
mock_is_allowed = mocker.patch.object(
service,
'is_allowed',
return_value=True
)
response = client.delete('/api/users/2')
response_data = response.json()
@@ -251,40 +332,46 @@ class TestUsers:
mock_session,
2,
)
mock_is_allowed.assert_called_once_with(
mock_user
)
def test_delete_one_notfound(
self,
client,
mocker,
mock_session,
mock_user):
user_result = None
self,
client,
mocker,
mock_session,
mock_user,
):
mock = mocker.patch.object(
service,
'delete_one',
side_effect=exceptions.UserNotFoundError('User 2 not found')
)
mock_is_allowed = mocker.patch.object(
service,
'is_allowed',
return_value=True
)
response = client.delete('/api/users/2')
response_data = response.json()
assert response.status_code == 404
mock.assert_called_once_with(
mock_session,
2,
)
mock_is_allowed.assert_called_once_with(
mock_user
)
def test_delete_one_unauthorized(
self,
client,
mocker,
mock_session,
mock_user):
self,
client,
mocker,
):
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')