Files
ros_control/tests/helpers.py
T
ayurishchevandClaude Opus 5.5 e1f197ccff Тесты по модулям предметных областей
Пункт 12 ревью 2026-09-28 17:35 (docs/changes/026): tests/test_app.py
(936 строк) разнесён на test_security, test_devices, test_operations,
test_backups, test_events, test_ids_migrations, test_architecture; общие
хелперы — tests/helpers.py. Тела тестов не менялись (AST совпадает).
security.reset_all_failures() — фикстура сбрасывает счётчики попыток по
всем ключам, тесты не зависят от порядка.

Тесты: 36 из 36 полным прогоном, каждый модуль отдельно и в обратном
порядке; тест-линтер после переноса проверен мутацией.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 21:30:23 +03:00

16 lines
744 B
Python

"""Общие хелперы тестов: клиент RouterOS с мок-транспортом, минимальный ASGI-запрос."""
import httpx
from fastapi import Request
from app.ros.client import RosClient
def ros_client(handler) -> RosClient:
return RosClient("r1", 443, "admin", "pw", transport=httpx.MockTransport(handler))
def _request(client_host: str | None, xff: str | None = None) -> Request:
"""Минимальный ASGI-запрос для проверки security.client_ip без реального соединения."""
headers = [(b"x-forwarded-for", xff.encode())] if xff else []
return Request({"type": "http", "client": (client_host, 1) if client_host else None, "headers": headers})