Coverage for tests/test_fields_set.py: 100%
14 statements
« prev ^ index » next coverage.py v7.11.0, created at 2025-10-27 00:03 +0000
« prev ^ index » next coverage.py v7.11.0, created at 2025-10-27 00:03 +0000
1from datetime import datetime, timedelta 1klmnopqrst
3from sqlmodel import Field, SQLModel 1klmnopqrst
4from sqlmodel._compat import get_fields_set 1klmnopqrst
7def test_fields_set(): 1klmnopqrst
8 class User(SQLModel): 1abcdefghij
9 username: str 1abcdefghij
10 email: str = "test@test.com" 1abcdefghij
11 last_updated: datetime = Field(default_factory=datetime.now) 1abcdefghij
13 user = User(username="bob") 1abcdefghij
14 assert get_fields_set(user) == {"username"} 1abcdefghij
15 user = User(username="bob", email="bob@test.com") 1abcdefghij
16 assert get_fields_set(user) == {"username", "email"} 1abcdefghij
17 user = User( 1abcdefghij
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"} 1abcdefghij