Coverage for tests/test_fields_set.py: 100%

14 statements  

« prev     ^ index     » next       coverage.py v7.6.12, created at 2025-03-07 05:42 +0000

1from datetime import datetime, timedelta 1hijklmn

2 

3from sqlmodel import Field, SQLModel 1hijklmn

4from sqlmodel._compat import get_fields_set 1hijklmn

5 

6 

7def test_fields_set(): 1hijklmn

8 class User(SQLModel): 1abcdefg

9 username: str 1abcdefg

10 email: str = "test@test.com" 1abcdefg

11 last_updated: datetime = Field(default_factory=datetime.now) 1abcdefg

12 

13 user = User(username="bob") 1abcdefg

14 assert get_fields_set(user) == {"username"} 1abcdefg

15 user = User(username="bob", email="bob@test.com") 1abcdefg

16 assert get_fields_set(user) == {"username", "email"} 1abcdefg

17 user = User( 1abcdefg

18 username="bob", 

19 email="bob@test.com", 

20 last_updated=datetime.now() - timedelta(days=1), 

21 ) 

22 assert get_fields_set(user) == {"username", "email", "last_updated"} 1abcdefg