pytest 1.5
This commit is contained in:
@@ -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"
|
||||
|
||||
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"}
|
||||
)
|
||||
|
||||
response = await client.delete(f"/user_delete/{global_email}")
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
assert response.status_code == expected_status
|
||||
api.dependency_overrides.clear()
|
||||
Reference in New Issue
Block a user