Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

344
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda