/
tsps
/
core
Обзор
Документация
Войти
/
tsps
/
core
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
master
tests/api/admin/test_admins.py
64 строки
2 KB
Василий Петров
Апи админов и фильтрация по ним в задачах
19 фев 2026, 22:41
19 фев 2026, 22:41
413be3d
Код
Авторство
О чём код?
import pytest from tests.utils import clean_table from app.models import Admin from fastapi.testclient import TestClient from app.main import app client = TestClient(app) @pytest.fixture(autouse=True) def clean_admins_table(): """Очищает таблицу admin перед каждым тестом.""" clean_table(Admin) def test_read_admins(auth_headers): response = client.get("/api/admin/admins", headers=auth_headers) assert response.status_code == 200 data = response.json() assert "items" in data assert "total" in data assert "skip" in data assert "limit" in data assert isinstance(data["items"], list) def test_read_admins_filter_by_email(auth_headers): # Фильтрация работает на существующих админах (создаются через фикстуру auth_headers) response = client.get("/api/admin/admins", headers=auth_headers) assert response.status_code == 200 data = response.json() assert len(data["items"]) >= 1 # хотя бы один админ (из фикстуры) # Фильтрация по подстроке email response = client.get("/api/admin/admins?email=test", headers=auth_headers) assert response.status_code == 200 data = response.json() # Должен найти админа из фикстуры (test@admin.local) assert len(data["items"]) >= 1 # Нет совпадений response = client.get("/api/admin/admins?email=nonexistent", headers=auth_headers) assert response.status_code == 200 data = response.json() assert len(data["items"]) == 0 def test_read_admins_pagination(auth_headers): response = client.get("/api/admin/admins?skip=0&limit=1", headers=auth_headers) assert response.status_code == 200 data = response.json() assert len(data["items"]) <= 1 assert data["skip"] == 0 assert data["limit"] == 1 response = client.get("/api/admin/admins?skip=100&limit=10", headers=auth_headers) assert response.status_code == 200 data = response.json() assert len(data["items"]) == 0 def test_read_admins_unauthorized(): response = client.get("/api/admin/admins") assert response.status_code == 401