"""Общие хелперы тестов: клиент 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})