test_compat.py — fastapi Source File
Architecture documentation for test_compat.py, a python file in the fastapi codebase. 10 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR d8f09690_317a_a71d_db2f_7a9171e4e6fd["test_compat.py"] 8fd7072e_05b0_6622_0f14_e1e357032855["utils.py"] d8f09690_317a_a71d_db2f_7a9171e4e6fd --> 8fd7072e_05b0_6622_0f14_e1e357032855 0dda2280_3359_8460_301c_e98c77e78185["typing"] d8f09690_317a_a71d_db2f_7a9171e4e6fd --> 0dda2280_3359_8460_301c_e98c77e78185 534f6e44_61b8_3c38_8b89_6934a6df9802["__init__.py"] d8f09690_317a_a71d_db2f_7a9171e4e6fd --> 534f6e44_61b8_3c38_8b89_6934a6df9802 aac750d7_00e7_a28d_9e64_89918311078b["__init__.py"] d8f09690_317a_a71d_db2f_7a9171e4e6fd --> aac750d7_00e7_a28d_9e64_89918311078b 3e898b29_4dd8_c417_2d9b_a84d867423b4["shared.py"] d8f09690_317a_a71d_db2f_7a9171e4e6fd --> 3e898b29_4dd8_c417_2d9b_a84d867423b4 7902a3e7_b475_cc3f_95dd_6266d428706b["is_bytes_sequence_annotation"] d8f09690_317a_a71d_db2f_7a9171e4e6fd --> 7902a3e7_b475_cc3f_95dd_6266d428706b a7c04dee_ee23_5891_b185_47ff6bed036d["testclient.py"] d8f09690_317a_a71d_db2f_7a9171e4e6fd --> a7c04dee_ee23_5891_b185_47ff6bed036d 6913fbd4_39df_d14b_44bb_522e99b65b90["pydantic"] d8f09690_317a_a71d_db2f_7a9171e4e6fd --> 6913fbd4_39df_d14b_44bb_522e99b65b90 b736e30b_692b_1eb3_fc90_f9fee804449e["pydantic.fields"] d8f09690_317a_a71d_db2f_7a9171e4e6fd --> b736e30b_692b_1eb3_fc90_f9fee804449e 3e134d50_38c1_8523_f518_6686c1d9752b["v2.py"] d8f09690_317a_a71d_db2f_7a9171e4e6fd --> 3e134d50_38c1_8523_f518_6686c1d9752b style d8f09690_317a_a71d_db2f_7a9171e4e6fd fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
from typing import Union
from fastapi import FastAPI, UploadFile
from fastapi._compat import (
Undefined,
is_uploadfile_sequence_annotation,
)
from fastapi._compat.shared import is_bytes_sequence_annotation
from fastapi.testclient import TestClient
from pydantic import BaseModel, ConfigDict
from pydantic.fields import FieldInfo
from .utils import needs_py310
def test_model_field_default_required():
from fastapi._compat import v2
# For coverage
field_info = FieldInfo(annotation=str)
field = v2.ModelField(name="foo", field_info=field_info)
assert field.default is Undefined
def test_complex():
app = FastAPI()
@app.post("/")
def foo(foo: Union[str, list[int]]):
return foo
client = TestClient(app)
response = client.post("/", json="bar")
assert response.status_code == 200, response.text
assert response.json() == "bar"
response2 = client.post("/", json=[1, 2])
assert response2.status_code == 200, response2.text
assert response2.json() == [1, 2]
def test_propagates_pydantic2_model_config():
app = FastAPI()
class Missing:
def __bool__(self):
return False
class EmbeddedModel(BaseModel):
model_config = ConfigDict(arbitrary_types_allowed=True)
value: Union[str, Missing] = Missing()
class Model(BaseModel):
model_config = ConfigDict(
arbitrary_types_allowed=True,
)
value: Union[str, Missing] = Missing()
embedded_model: EmbeddedModel = EmbeddedModel()
// ... (75 more lines)
Domain
Subdomains
Functions
- test_complex()
- test_is_bytes_sequence_annotation_union()
- test_is_uploadfile_sequence_annotation()
- test_model_field_default_required()
- test_propagates_pydantic2_model_config()
- test_serialize_sequence_value_with_none_first_in_union()
- test_serialize_sequence_value_with_optional_list()
- test_serialize_sequence_value_with_optional_list_pipe_union()
Classes
Dependencies
- __init__.py
- __init__.py
- is_bytes_sequence_annotation
- pydantic
- pydantic.fields
- shared.py
- testclient.py
- typing
- utils.py
- v2.py
Source
Frequently Asked Questions
What does test_compat.py do?
test_compat.py is a source file in the fastapi codebase, written in python. It belongs to the FastAPI domain, Responses subdomain.
What functions are defined in test_compat.py?
test_compat.py defines 8 function(s): test_complex, test_is_bytes_sequence_annotation_union, test_is_uploadfile_sequence_annotation, test_model_field_default_required, test_propagates_pydantic2_model_config, test_serialize_sequence_value_with_none_first_in_union, test_serialize_sequence_value_with_optional_list, test_serialize_sequence_value_with_optional_list_pipe_union.
What does test_compat.py depend on?
test_compat.py imports 10 module(s): __init__.py, __init__.py, is_bytes_sequence_annotation, pydantic, pydantic.fields, shared.py, testclient.py, typing, and 2 more.
Where is test_compat.py in the architecture?
test_compat.py is located at tests/test_compat.py (domain: FastAPI, subdomain: Responses, directory: tests).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free