diff --git a/server/testing/tests/endpoints_test.py b/server/testing/tests/endpoints_test.py index e35a1f5..c0457ad 100644 --- a/server/testing/tests/endpoints_test.py +++ b/server/testing/tests/endpoints_test.py @@ -77,14 +77,44 @@ async def test_is_admin(client, monkeypatch, global_email, is_admin, expected_st assert response.status_code == expected_status api.dependency_overrides.clear() - +@pytest.mark.parametrize("is_admin,expected_status", [ + (False, 403), + (True, 200) +]) @pytest.mark.asyncio -async def test_delete_user(client,global_email): - '''Проверка: Удаление пользователя''' +async def test_delete_user(client, global_email, monkeypatch, is_admin, expected_status): + """Проверка: Удаление пользователя""" - async def fake_current_user(): #фейковая зависимость (fake_current_user) — функция, которая имитирует поведение настоящего JWT.current_user, но просто возвращает строку "test_user". - return "daun2@example.com" - api.dependency_overrides[JWT.current_user] = fake_current_user - response = await client.delete(f"/user_delete/{global_email}") - assert response.status_code == status.HTTP_200_OK \ No newline at end of file + class FakePerm: + def __init__(self, is_admin): + self.is_admin = is_admin + self.can_edit = False + self.can_delete = False + self.can_view = False + class FakeUser: + def __init__(self, is_admin): + self.email = global_email + self.permissions = [FakePerm(is_admin)] + self.description = "test_user" + self.activated = True + self.password = "123qwe!@#" + # добавляем обязательные поля из модели UserOut + self.created_at = "2025-10-12T00:00:00Z" + self.updated_at = "2025-10-12T00:00:00Z" + self.last_login = None + + async def fake_get_user_by_email(email): + return FakeUser(is_admin) + monkeypatch.setattr(db, "get_user_by_email", fake_get_user_by_email) + + async def fake_current_user(): + return global_email + api.dependency_overrides[JWT.current_user] = fake_current_user + response = await client.delete( + f"/user_delete/{global_email}", + headers={"Authorization": "Bearer faketoken"} + ) + + assert response.status_code == expected_status + api.dependency_overrides.clear() \ No newline at end of file