1- from typing import Optional
2-
31import pytest
42from pydantic import ValidationError
53from sqlmodel import Field , SQLModel
@@ -13,7 +11,7 @@ def test_model_fields_optional_basic(clear_sqlmodel):
1311 class HeroBase (SQLModel ):
1412 name : str
1513 secret_name : str
16- age : Optional [ int ] = None
14+ age : int | None = None
1715
1816 class HeroUpdate (HeroBase , model_fields_optional = "all" ):
1917 pass
@@ -35,7 +33,7 @@ def test_model_fields_optional_partial_data(clear_sqlmodel):
3533 class HeroBase (SQLModel ):
3634 name : str
3735 secret_name : str
38- age : Optional [ int ] = None
36+ age : int | None = None
3937
4038 class HeroUpdate (HeroBase , model_fields_optional = "all" ):
4139 pass
@@ -53,7 +51,7 @@ def test_model_fields_optional_exclude_unset(clear_sqlmodel):
5351 class HeroBase (SQLModel ):
5452 name : str
5553 secret_name : str
56- age : Optional [ int ] = None
54+ age : int | None = None
5755
5856 class HeroUpdate (HeroBase , model_fields_optional = "all" ):
5957 pass
@@ -70,7 +68,7 @@ def test_model_fields_optional_override_field(clear_sqlmodel):
7068 class HeroBase (SQLModel ):
7169 name : str
7270 secret_name : str
73- age : Optional [ int ] = None
71+ age : int | None = None
7472
7573 class HeroUpdate (HeroBase , model_fields_optional = "all" ):
7674 name : str # Keep name required
@@ -95,7 +93,7 @@ def test_model_fields_optional_preserves_constraints(clear_sqlmodel):
9593
9694 class HeroBase (SQLModel ):
9795 name : str = Field (min_length = 1 )
98- age : Optional [ int ] = Field (default = None , ge = 0 )
96+ age : int | None = Field (default = None , ge = 0 )
9997
10098 class HeroUpdate (HeroBase , model_fields_optional = "all" ):
10199 pass
@@ -149,7 +147,7 @@ def test_model_fields_optional_via_model_config(clear_sqlmodel):
149147 class HeroBase (SQLModel ):
150148 name : str
151149 secret_name : str
152- age : Optional [ int ] = None
150+ age : int | None = None
153151
154152 class HeroUpdate (HeroBase ):
155153 model_config = SQLModelConfig (model_fields_optional = "all" )
@@ -170,10 +168,10 @@ def test_model_fields_optional_with_table_base(clear_sqlmodel):
170168 class HeroBase (SQLModel ):
171169 name : str
172170 secret_name : str
173- age : Optional [ int ] = None
171+ age : int | None = None
174172
175173 class Hero (HeroBase , table = True ):
176- id : Optional [ int ] = Field (default = None , primary_key = True )
174+ id : int | None = Field (default = None , primary_key = True )
177175
178176 class HeroUpdate (HeroBase , model_fields_optional = "all" ):
179177 pass
@@ -194,8 +192,8 @@ def test_model_fields_optional_already_optional_fields(clear_sqlmodel):
194192
195193 class HeroBase (SQLModel ):
196194 name : str
197- nickname : Optional [ str ] = "Unknown"
198- age : Optional [ int ] = None
195+ nickname : str | None = "Unknown"
196+ age : int | None = None
199197
200198 class HeroUpdate (HeroBase , model_fields_optional = "all" ):
201199 pass
@@ -215,7 +213,7 @@ def test_model_fields_optional_model_validate(clear_sqlmodel):
215213 class HeroBase (SQLModel ):
216214 name : str
217215 secret_name : str
218- age : Optional [ int ] = None
216+ age : int | None = None
219217
220218 class HeroUpdate (HeroBase , model_fields_optional = "all" ):
221219 pass
0 commit comments