Home / File/ test_validation_error_context.py — fastapi Source File

test_validation_error_context.py — fastapi Source File

Architecture documentation for test_validation_error_context.py, a python file in the fastapi codebase. 7 imports, 0 dependents.

File python FastAPI Applications 7 imports 15 functions 2 classes

Entity Profile

Dependency Diagram

graph LR
  8a7b7b4a_2080_c120_2b62_a12cf15e706b["test_validation_error_context.py"]
  534f6e44_61b8_3c38_8b89_6934a6df9802["__init__.py"]
  8a7b7b4a_2080_c120_2b62_a12cf15e706b --> 534f6e44_61b8_3c38_8b89_6934a6df9802
  01c652c5_d85c_f45e_848e_412c94ea4172["exceptions.py"]
  8a7b7b4a_2080_c120_2b62_a12cf15e706b --> 01c652c5_d85c_f45e_848e_412c94ea4172
  58bb043a_10d8_c308_5564_225558a63815["RequestValidationError"]
  8a7b7b4a_2080_c120_2b62_a12cf15e706b --> 58bb043a_10d8_c308_5564_225558a63815
  6c4918cc_63d7_a03d_91ee_e65fc35b0746["ResponseValidationError"]
  8a7b7b4a_2080_c120_2b62_a12cf15e706b --> 6c4918cc_63d7_a03d_91ee_e65fc35b0746
  b73e338b_e4cd_2e94_eb5a_5e6ac7b197b0["WebSocketRequestValidationError"]
  8a7b7b4a_2080_c120_2b62_a12cf15e706b --> b73e338b_e4cd_2e94_eb5a_5e6ac7b197b0
  a7c04dee_ee23_5891_b185_47ff6bed036d["testclient.py"]
  8a7b7b4a_2080_c120_2b62_a12cf15e706b --> a7c04dee_ee23_5891_b185_47ff6bed036d
  6913fbd4_39df_d14b_44bb_522e99b65b90["pydantic"]
  8a7b7b4a_2080_c120_2b62_a12cf15e706b --> 6913fbd4_39df_d14b_44bb_522e99b65b90
  style 8a7b7b4a_2080_c120_2b62_a12cf15e706b fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

from fastapi import FastAPI, Request, WebSocket
from fastapi.exceptions import (
    RequestValidationError,
    ResponseValidationError,
    WebSocketRequestValidationError,
)
from fastapi.testclient import TestClient
from pydantic import BaseModel


class Item(BaseModel):
    id: int
    name: str


class ExceptionCapture:
    def __init__(self):
        self.exception = None

    def capture(self, exc):
        self.exception = exc
        return exc


app = FastAPI()
sub_app = FastAPI()
captured_exception = ExceptionCapture()

app.mount(path="/sub", app=sub_app)


@app.exception_handler(RequestValidationError)
@sub_app.exception_handler(RequestValidationError)
async def request_validation_handler(request: Request, exc: RequestValidationError):
    captured_exception.capture(exc)
    raise exc


@app.exception_handler(ResponseValidationError)
@sub_app.exception_handler(ResponseValidationError)
async def response_validation_handler(_: Request, exc: ResponseValidationError):
    captured_exception.capture(exc)
    raise exc


@app.exception_handler(WebSocketRequestValidationError)
@sub_app.exception_handler(WebSocketRequestValidationError)
async def websocket_validation_handler(
    websocket: WebSocket, exc: WebSocketRequestValidationError
):
    captured_exception.capture(exc)
    raise exc


@app.get("/users/{user_id}")
def get_user(user_id: int):
    return {"user_id": user_id}  # pragma: no cover


@app.get("/items/", response_model=Item)
// ... (109 more lines)

Domain

Subdomains

Frequently Asked Questions

What does test_validation_error_context.py do?
test_validation_error_context.py is a source file in the fastapi codebase, written in python. It belongs to the FastAPI domain, Applications subdomain.
What functions are defined in test_validation_error_context.py?
test_validation_error_context.py defines 15 function(s): get_item, get_sub_item, get_user, request_validation_handler, response_validation_handler, subapp_websocket_endpoint, test_request_validation_error_includes_endpoint_context, test_response_validation_error_includes_endpoint_context, test_subapp_request_validation_error_includes_endpoint_context, test_subapp_websocket_validation_error_includes_endpoint_context, and 5 more.
What does test_validation_error_context.py depend on?
test_validation_error_context.py imports 7 module(s): RequestValidationError, ResponseValidationError, WebSocketRequestValidationError, __init__.py, exceptions.py, pydantic, testclient.py.
Where is test_validation_error_context.py in the architecture?
test_validation_error_context.py is located at tests/test_validation_error_context.py (domain: FastAPI, subdomain: Applications, directory: tests).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free