Skip to content

Commit f414dee

Browse files
committed
Simplify test via parameterization
1 parent 2153f86 commit f414dee

1 file changed

Lines changed: 17 additions & 41 deletions

File tree

Lines changed: 17 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,20 @@
1-
from sqlmodel import SQLModel
2-
3-
4-
def test_polymorphic_serialization_default():
5-
6-
class User(SQLModel):
7-
name: str
8-
9-
class UserLogin(User):
10-
password: str
11-
12-
class OuterModel(SQLModel):
13-
user: User
14-
15-
outer_model = OuterModel(
16-
user=UserLogin(name="pydantic", password="password"),
17-
)
1+
from typing import Any
182

19-
assert outer_model.model_dump() == {"user": {"name": "pydantic"}}
3+
import pytest
4+
from sqlmodel import SQLModel
205

216

22-
def test_polymorphic_serialization_false():
7+
@pytest.mark.parametrize(
8+
("polymorphic_serialization", "expected_result"),
9+
[
10+
(None, {"user": {"name": "pydantic"}}),
11+
(False, {"user": {"name": "pydantic"}}),
12+
(True, {"user": {"name": "pydantic", "password": "password"}}),
13+
],
14+
)
15+
def test_polymorphic_serialization(
16+
polymorphic_serialization: bool | None, expected_result: dict[str, Any]
17+
):
2318

2419
class User(SQLModel):
2520
name: str
@@ -34,26 +29,7 @@ class OuterModel(SQLModel):
3429
user=UserLogin(name="pydantic", password="password"),
3530
)
3631

37-
assert outer_model.model_dump(polymorphic_serialization=False) == {
38-
"user": {"name": "pydantic"}
39-
}
40-
41-
42-
def test_polymorphic_serialization_true():
43-
44-
class User(SQLModel):
45-
name: str
46-
47-
class UserLogin(User):
48-
password: str
49-
50-
class OuterModel(SQLModel):
51-
user: User
52-
53-
outer_model = OuterModel(
54-
user=UserLogin(name="pydantic", password="password"),
32+
assert (
33+
outer_model.model_dump(polymorphic_serialization=polymorphic_serialization)
34+
== expected_result
5535
)
56-
57-
assert outer_model.model_dump(polymorphic_serialization=True) == {
58-
"user": {"name": "pydantic", "password": "password"}
59-
}

0 commit comments

Comments
 (0)