Skip to content

Commit 77a3b21

Browse files
committed
Turn off mypy for complex tests; simplify.
Mypy is fragile. It was generating a false positive error, saying it couldn't find ConfigDictExt. Appeasing it in these tests also makes the code less readable. Solution: turn off mypy in some tests and aim for better readability.
1 parent c52d49c commit 77a3b21

File tree

2 files changed

+13
-15
lines changed

2 files changed

+13
-15
lines changed

tests/util/test_optional_and_computed.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
# mypy: ignore-errors
2+
13
from typing import Optional
24

35
import pytest
@@ -12,7 +14,7 @@
1214
Response,
1315
Schema,
1416
)
15-
from openapi_pydantic.compat import PYDANTIC_V2, JsonSchemaMode
17+
from openapi_pydantic.compat import PYDANTIC_V2
1618
from openapi_pydantic.util import PydanticSchema, construct_open_api_with_schema_class
1719

1820

@@ -57,7 +59,7 @@ def test_optional_and_computed_fields() -> None:
5759
def construct_sample_api() -> OpenAPI:
5860
from typing import TYPE_CHECKING, Callable
5961

60-
from pydantic import BaseModel, ConfigDict
62+
from pydantic import BaseModel
6163

6264
if TYPE_CHECKING:
6365

@@ -67,23 +69,20 @@ def computed_field(x: Callable) -> Callable:
6769
else:
6870
from pydantic import computed_field
6971

70-
class ConfigDictExt(ConfigDict, total=False):
71-
json_schema_mode: JsonSchemaMode
72-
7372
class SampleModel(BaseModel):
7473
req: bool
7574
opt: Optional[bool] = None
7675

77-
@computed_field # type: ignore
76+
@computed_field
7877
@property
7978
def comp(self) -> bool:
8079
return True
8180

8281
class SampleRequest(SampleModel):
83-
model_config = ConfigDictExt(json_schema_mode="validation")
82+
model_config = {"json_schema_mode": "validation"}
8483

8584
class SampleResponse(SampleModel):
86-
model_config = ConfigDictExt(json_schema_mode="serialization")
85+
model_config = {"json_schema_mode": "serialization"}
8786

8887
return OpenAPI(
8988
info=Info(

tests/v3_0_3/test_optional_and_computed.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1+
# mypy: ignore-errors
2+
13
from typing import Optional
24

35
import pytest
46

5-
from openapi_pydantic.compat import PYDANTIC_V2, JsonSchemaMode
7+
from openapi_pydantic.compat import PYDANTIC_V2
68
from openapi_pydantic.v3.v3_0_3 import (
79
Info,
810
MediaType,
@@ -60,7 +62,7 @@ def test_optional_and_computed_fields() -> None:
6062
def construct_sample_api() -> OpenAPI:
6163
from typing import TYPE_CHECKING, Callable
6264

63-
from pydantic import BaseModel, ConfigDict
65+
from pydantic import BaseModel
6466

6567
if TYPE_CHECKING:
6668

@@ -70,9 +72,6 @@ def computed_field(x: Callable) -> Callable:
7072
else:
7173
from pydantic import computed_field
7274

73-
class ConfigDictExt(ConfigDict, total=False):
74-
json_schema_mode: JsonSchemaMode
75-
7675
class SampleModel(BaseModel):
7776
req: bool
7877
opt: Optional[bool] = None
@@ -83,10 +82,10 @@ def comp(self) -> bool:
8382
return True
8483

8584
class SampleRequest(SampleModel):
86-
model_config = ConfigDictExt(json_schema_mode="validation")
85+
model_config = {"json_schema_mode": "validation"}
8786

8887
class SampleResponse(SampleModel):
89-
model_config = ConfigDictExt(json_schema_mode="serialization")
88+
model_config = {"json_schema_mode": "serialization"}
9089

9190
return OpenAPI(
9291
info=Info(

0 commit comments

Comments
 (0)