Coverage for tests/test_tutorial/test_pydantic_v1_in_v2/test_tutorial001.py: 100%
19 statements
« prev ^ index » next coverage.py v7.6.1, created at 2025-12-04 08:29 +0000
« prev ^ index » next coverage.py v7.6.1, created at 2025-12-04 08:29 +0000
1import sys 1abcdefg
2from typing import Any 1abcdefg
4import pytest 1abcdefg
5from fastapi._compat import PYDANTIC_V2 1abcdefg
7from tests.utils import skip_module_if_py_gte_314 1abcdefg
9if sys.version_info >= (3, 14): 1abcdefg
10 skip_module_if_py_gte_314() 1g
13if not PYDANTIC_V2: 1abcdef
14 pytest.skip("This test is only for Pydantic v2", allow_module_level=True) 1abcdef
16import importlib 1abcdef
18import pytest 1abcdef
20from ...utils import needs_py310 1abcdef
23@pytest.fixture( 1abcdef
24 name="mod",
25 params=[
26 "tutorial001_an",
27 pytest.param("tutorial001_an_py310", marks=needs_py310),
28 ],
29)
30def get_mod(request: pytest.FixtureRequest): 1abcdef
31 mod = importlib.import_module(f"docs_src.pydantic_v1_in_v2.{request.param}") 1abcdef
32 return mod 1abcdef
35def test_model(mod: Any): 1abcdef
36 item = mod.Item(name="Foo", size=3.4) 1hijklm
37 assert item.dict() == {"name": "Foo", "description": None, "size": 3.4} 1hijklm