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

1import sys 1abcdefg

2from typing import Any 1abcdefg

3 

4import pytest 1abcdefg

5from fastapi._compat import PYDANTIC_V2 1abcdefg

6 

7from tests.utils import skip_module_if_py_gte_314 1abcdefg

8 

9if sys.version_info >= (3, 14): 1abcdefg

10 skip_module_if_py_gte_314() 1g

11 

12 

13if not PYDANTIC_V2: 1abcdef

14 pytest.skip("This test is only for Pydantic v2", allow_module_level=True) 1abcdef

15 

16import importlib 1abcdef

17 

18import pytest 1abcdef

19 

20from ...utils import needs_py310 1abcdef

21 

22 

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

33 

34 

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