/
kreyndelHam
/
Konstructorium
Обзор
Документация
Войти
/
kreyndelHam
/
Konstructorium
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
1
CI/CD
Аналитика
Безопасность
dev
tests/conftest.py
96 строк
3 KB
Арсений
smoke-тесты регистрации с обязательным фио
22 май 2026, 16:23
22 май 2026, 16:23
482aa63
Код
Авторство
О чём код?
"""Фикстуры pytest для API-тестов.""" import pytest import requests from tests.helpers import ( ADMIN_BASE_URL, AUTH_BASE_URL, CHAT_BASE_URL, ORDER_BASE_URL, PRODUCT_BASE_URL, REVIEW_BASE_URL, USER_BASE_URL, assert_http_status, build_registration_payload, create_smoke_session, ensure_service_available, ) @pytest.fixture def registered_user(): """ Регистрирует нового пользователя в auth_service и возвращает payload с учётными данными. """ payload = build_registration_payload() response = requests.post( f"{AUTH_BASE_URL}/register/", json=payload, timeout=10, ) assert_http_status(response, {201}) return payload @pytest.fixture def authenticated_session(registered_user): """ Сессия requests с cookie после успешного login (для profile и user_service). """ session = create_smoke_session() login_response = session.post( f"{AUTH_BASE_URL}/login/", json={ "username": registered_user["username"], "password": registered_user["password"], }, timeout=10, ) assert_http_status(login_response, {200}) auth_token = login_response.json().get("token") assert auth_token, "auth login must return API token for cross-service smoke requests" session.headers["Authorization"] = f"Token {auth_token}" return session, registered_user["username"] @pytest.fixture(scope="module") def ensure_auth_service(): """Ensure auth_service is reachable before auth smoke tests.""" ensure_service_available(AUTH_BASE_URL, "csrf/") @pytest.fixture(scope="module") def ensure_user_service(): """Ensure user_service is reachable before user smoke tests.""" ensure_service_available(USER_BASE_URL, "profiles/") @pytest.fixture(scope="module") def ensure_product_service(): """Ensure product_service is reachable before product smoke tests.""" ensure_service_available(PRODUCT_BASE_URL, "models/") @pytest.fixture(scope="module") def ensure_order_service(): """Ensure order_service is reachable before order smoke tests.""" ensure_service_available(ORDER_BASE_URL, "cart/") @pytest.fixture(scope="module") def ensure_admin_service(): """Ensure admin_service is reachable before admin smoke tests.""" ensure_service_available(ADMIN_BASE_URL, "users/") @pytest.fixture(scope="module") def ensure_chat_service(): """Ensure chat_service is reachable before chat smoke tests.""" ensure_service_available(CHAT_BASE_URL, "conversations/") @pytest.fixture(scope="module") def ensure_review_service(): """Ensure review_service is reachable before review smoke tests.""" ensure_service_available(REVIEW_BASE_URL, "reviews/")