1- import pytest
21from datetime import datetime
3- from typing import Optional
42
5- from sqlmodel import SQLModel , create_engine , Field
6- from sqlmodel . main import default_registry
3+ import pytest
4+ from sqlmodel import Field , SQLModel , create_engine
75from sqlmodel .soft_delete import SoftDeleteMixin
86from sqlmodel .soft_delete_session import SoftDeleteSession
97
@@ -17,7 +15,7 @@ def clear_sqlmodel():
1715def test_soft_delete ():
1816 # Define model inside test to avoid registry conflicts
1917 class SoftDeleteHero (SQLModel , SoftDeleteMixin , table = True ):
20- id : Optional [ int ] = Field (default = None , primary_key = True )
18+ id : int | None = Field (default = None , primary_key = True )
2119 name : str
2220
2321 engine = create_engine ("sqlite:///:memory:" )
@@ -45,7 +43,7 @@ def test_hard_delete():
4543 # Define model inside test to avoid registry conflicts
4644 class HardDeleteHero (SQLModel , SoftDeleteMixin , table = True ):
4745 __tablename__ = "hard_delete_heroes"
48- id : Optional [ int ] = Field (default = None , primary_key = True )
46+ id : int | None = Field (default = None , primary_key = True )
4947 name : str
5048
5149 engine = create_engine ("sqlite:///:memory:" )
@@ -62,4 +60,4 @@ class HardDeleteHero(SQLModel, SoftDeleteMixin, table=True):
6260
6361 # Check hard deleted (would raise if not handled, but since hard delete, it's gone)
6462 # In SQLAlchemy, after hard delete, the object is detached
65- assert hero .id is None or session .get (HardDeleteHero , hero .id ) is None
63+ assert hero .id is None or session .get (HardDeleteHero , hero .id ) is None
0 commit comments