migrations sync fix
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
from types import SimpleNamespace
|
||||
from unittest.mock import AsyncMock
|
||||
|
||||
import allure
|
||||
import pytest
|
||||
from fastapi import HTTPException
|
||||
|
||||
from src.models.pydantic_models.model import UserCreate, UserUpdate
|
||||
from src.service.users_crud.users_crud import CrudService
|
||||
|
||||
|
||||
@pytest.mark.integra
|
||||
class TestCrud:
|
||||
|
||||
@pytest.mark.parametrize("user_data", [
|
||||
pytest.param(SimpleNamespace(first_name="test",last_name="test",middle_name="test",email="d@d.d",direct_permissions=[],group=[], plain_password="Test1234!"),id="Create_user_positive")
|
||||
])
|
||||
async def test_create_user_positive(self, crud_service:CrudService, monkeypatch, user_data:SimpleNamespace)->None:
|
||||
|
||||
with allure.step("Patching functions"):
|
||||
monkeypatch.setattr(crud_service.crud_db_actions, "create_user", AsyncMock(return_value=user_data))
|
||||
|
||||
with allure.step("Test Create User"):
|
||||
await crud_service.create_user(UserCreate.model_validate(user_data))
|
||||
|
||||
|
||||
@pytest.mark.parametrize("user_data,expected_exception,expected_status ", [
|
||||
pytest.param(SimpleNamespace(first_name="test",last_name="test",middle_name="test",email="d@d.d",direct_permissions=[],group=[], plain_password="Test1234!"),HTTPException,422,id="Create_user_None")
|
||||
])
|
||||
async def test_create_user_negative(self, crud_service:CrudService, monkeypatch, user_data:SimpleNamespace, expected_exception, expected_status:int)->None:
|
||||
|
||||
with allure.step("Patching functions"):
|
||||
monkeypatch.setattr(crud_service.crud_db_actions, "create_user", AsyncMock(return_value=None))
|
||||
|
||||
with allure.step("Test Create User"), pytest.raises(expected_exception) as exc_info:
|
||||
await crud_service.create_user(UserCreate.model_validate(user_data))
|
||||
|
||||
if expected_exception is HTTPException:
|
||||
assert exc_info.value.status_code == expected_status
|
||||
|
||||
@pytest.mark.parametrize("user_data", [
|
||||
pytest.param(SimpleNamespace(first_name="test",last_name="test",middle_name="test",email="d@d.d",direct_permissions=[],group=[], plain_password="Test1234!"),id="Create_user_positive")
|
||||
])
|
||||
async def test_update_user_positive(self, crud_service:CrudService, monkeypatch, user_data:SimpleNamespace)->None:
|
||||
|
||||
with allure.step("Patching functions"):
|
||||
monkeypatch.setattr(crud_service.crud_db_actions, "update_user_partially", AsyncMock(return_value=user_data))
|
||||
|
||||
with allure.step("Test Update User"):
|
||||
await crud_service.update_user(user_data.email,UserUpdate.model_validate(user_data))
|
||||
|
||||
|
||||
@pytest.mark.parametrize("user_data,expected_exception,expected_status ", [
|
||||
pytest.param(SimpleNamespace(first_name="test",last_name="test",middle_name="test",email="d@d.d",direct_permissions=[],group=[], plain_password="Test1234!"),HTTPException,404,id="Update_user_None"),
|
||||
pytest.param(SimpleNamespace(),HTTPException,400,id="Empty_user_data")
|
||||
])
|
||||
async def test_update_user_negative(self, crud_service:CrudService, monkeypatch, user_data:SimpleNamespace, expected_exception, expected_status:int)->None:
|
||||
|
||||
with allure.step("Patching functions"):
|
||||
monkeypatch.setattr(crud_service.crud_db_actions, "update_user_partially", AsyncMock(return_value=None))
|
||||
|
||||
with allure.step("Test Update User"), pytest.raises(expected_exception) as exc_info:
|
||||
await crud_service.update_user("d@d.d",UserUpdate.model_validate(user_data))
|
||||
|
||||
if expected_exception is HTTPException:
|
||||
assert exc_info.value.status_code == expected_status
|
||||
|
||||
|
||||
Reference in New Issue
Block a user