Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

353
Vistas
¿Cómo deshabilitar las excepciones del servidor en fast-api cuando se prueba con httpx AsyncClient?

Tenemos una aplicación FastApi y usamos httpx AsyncClient con fines de prueba. Estamos experimentando un problema en el que las pruebas unitarias se ejecutan localmente bien pero fallan en el servidor CI (acciones de Github).

Después de más investigaciones, nos encontramos con esta solución propuesta al establecer raise_server_exceptions=False en False .

 client = TestClient(app, raise_server_exceptions=False)

Sin embargo, esto es para el cliente de sincronización. Estamos usando el cliente asíncrono.

 @pytest.fixture async def client(test_app): async with AsyncClient(app=test_app, base_url="http://testserver") as client: yield client

AsyncClient no admite la opción raise_app_exceptions=False .

¿Alguien tiene experiencia con esto? Gracias

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

El problema es causado por la versión FastApi. Puede usar fastapi==0.65.0 e incluso sin el objeto ASGITransport y el indicador raise_app_exceptions=False, podrá ejecutar las pruebas que verifican la creación de excepciones personalizadas. Además, la versión fastapi debe congelarse en el archivo de requisitos. Puedes leer más aquí

over 4 years ago · Santiago Trujillo Denunciar

0

Para httpx v0.14.0+ necesita usar httpx.ASGITransport . Extracto de la documentación oficial :

Para algunos casos más complejos, es posible que deba personalizar el transporte ASGI. Esto le permite:

  • Inspeccione 500 respuestas de error en lugar de generar excepciones configurando raise_app_exceptions=False.
  • Monte la aplicación ASGI en una subruta configurando root_path.
  • Use una dirección de cliente determinada para las solicitudes configurando client.

Por ejemplo:

 # Instantiate a client that makes ASGI requests with a client IP of "1.2.3.4", # on port 123. transport = httpx.ASGITransport(app=app, raise_app_exceptions=False, client=("1.2.3.4", 123)) async with httpx.AsyncClient(transport=transport, base_url="http://testserver") as client: ...
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda