Browse Source

Run Pydantic v1 tests only on Python < 3.14

pull/14168/head
Sebastián Ramírez 9 months ago
parent
commit
1e32fe0e64
  1. 9
      tests/test_compat_params_v1.py
  2. 8
      tests/test_pydantic_v1_v2_01.py
  3. 8
      tests/test_pydantic_v1_v2_list.py
  4. 8
      tests/test_pydantic_v1_v2_mixed.py
  5. 9
      tests/test_pydantic_v1_v2_multifile/test_multifile.py
  6. 8
      tests/test_pydantic_v1_v2_noneable.py
  7. 6
      tests/utils.py

9
tests/test_compat_params_v1.py

@ -1,6 +1,13 @@
import sys
from typing import List, Optional from typing import List, Optional
import pytest import pytest
from tests.utils import pydantic_snapshot, skip_module_if_py_gte_314
if sys.version_info > (3, 13):
skip_module_if_py_gte_314()
from fastapi import FastAPI from fastapi import FastAPI
from fastapi._compat._params_v1 import Body, Cookie, File, Form, Header, Path, Query from fastapi._compat._params_v1 import Body, Cookie, File, Form, Header, Path, Query
from fastapi._compat.v1 import BaseModel from fastapi._compat.v1 import BaseModel
@ -8,8 +15,6 @@ from fastapi.testclient import TestClient
from inline_snapshot import snapshot from inline_snapshot import snapshot
from typing_extensions import Annotated from typing_extensions import Annotated
from tests.utils import pydantic_snapshot
class Item(BaseModel): class Item(BaseModel):
name: str name: str

8
tests/test_pydantic_v1_v2_01.py

@ -1,12 +1,16 @@
import sys
from typing import Any, List, Union from typing import Any, List, Union
from tests.utils import pydantic_snapshot, skip_module_if_py_gte_314
if sys.version_info > (3, 13):
skip_module_if_py_gte_314()
from fastapi import FastAPI from fastapi import FastAPI
from fastapi._compat.v1 import BaseModel from fastapi._compat.v1 import BaseModel
from fastapi.testclient import TestClient from fastapi.testclient import TestClient
from inline_snapshot import snapshot from inline_snapshot import snapshot
from tests.utils import pydantic_snapshot
class SubItem(BaseModel): class SubItem(BaseModel):
name: str name: str

8
tests/test_pydantic_v1_v2_list.py

@ -1,12 +1,16 @@
import sys
from typing import Any, List, Union from typing import Any, List, Union
from tests.utils import pydantic_snapshot, skip_module_if_py_gte_314
if sys.version_info > (3, 13):
skip_module_if_py_gte_314()
from fastapi import FastAPI from fastapi import FastAPI
from fastapi._compat.v1 import BaseModel from fastapi._compat.v1 import BaseModel
from fastapi.testclient import TestClient from fastapi.testclient import TestClient
from inline_snapshot import snapshot from inline_snapshot import snapshot
from tests.utils import pydantic_snapshot
class SubItem(BaseModel): class SubItem(BaseModel):
name: str name: str

8
tests/test_pydantic_v1_v2_mixed.py

@ -1,13 +1,17 @@
import sys
from typing import Any, List, Union from typing import Any, List, Union
from tests.utils import pydantic_snapshot, skip_module_if_py_gte_314
if sys.version_info > (3, 13):
skip_module_if_py_gte_314()
from fastapi import FastAPI from fastapi import FastAPI
from fastapi._compat.v1 import BaseModel from fastapi._compat.v1 import BaseModel
from fastapi.testclient import TestClient from fastapi.testclient import TestClient
from inline_snapshot import snapshot from inline_snapshot import snapshot
from pydantic import BaseModel as NewBaseModel from pydantic import BaseModel as NewBaseModel
from tests.utils import pydantic_snapshot
class SubItem(BaseModel): class SubItem(BaseModel):
name: str name: str

9
tests/test_pydantic_v1_v2_multifile/test_multifile.py

@ -1,9 +1,14 @@
import sys
from tests.utils import pydantic_snapshot, skip_module_if_py_gte_314
if sys.version_info > (3, 13):
skip_module_if_py_gte_314()
from dirty_equals import IsPartialDict from dirty_equals import IsPartialDict
from fastapi.testclient import TestClient from fastapi.testclient import TestClient
from inline_snapshot import snapshot from inline_snapshot import snapshot
from tests.utils import pydantic_snapshot
from .main import app from .main import app
client = TestClient(app) client = TestClient(app)

8
tests/test_pydantic_v1_v2_noneable.py

@ -1,13 +1,17 @@
import sys
from typing import Any, List, Union from typing import Any, List, Union
from tests.utils import pydantic_snapshot, skip_module_if_py_gte_314
if sys.version_info > (3, 13):
skip_module_if_py_gte_314()
from fastapi import FastAPI from fastapi import FastAPI
from fastapi._compat.v1 import BaseModel from fastapi._compat.v1 import BaseModel
from fastapi.testclient import TestClient from fastapi.testclient import TestClient
from inline_snapshot import snapshot from inline_snapshot import snapshot
from pydantic import BaseModel as NewBaseModel from pydantic import BaseModel as NewBaseModel
from tests.utils import pydantic_snapshot
class SubItem(BaseModel): class SubItem(BaseModel):
name: str name: str

6
tests/utils.py

@ -15,6 +15,12 @@ needs_pydanticv2 = pytest.mark.skipif(not PYDANTIC_V2, reason="requires Pydantic
needs_pydanticv1 = pytest.mark.skipif(PYDANTIC_V2, reason="requires Pydantic v1") needs_pydanticv1 = pytest.mark.skipif(PYDANTIC_V2, reason="requires Pydantic v1")
def skip_module_if_py_gte_314():
"""Skip entire module on Python 3.14+ at import time."""
if sys.version_info > (3, 13):
pytest.skip("requires python3.13-", allow_module_level=True)
def pydantic_snapshot( def pydantic_snapshot(
*, *,
v2: Snapshot, v2: Snapshot,

Loading…
Cancel
Save