Skip to content

Commit df83c46

Browse files
committed
✅ Add test for nullable fields
1 parent f9522b3 commit df83c46

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

tests/test_nullable.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
from typing import Optional
2+
3+
from sqlmodel import Field, SQLModel, create_engine
4+
5+
6+
def test_nullable_fields_set_properly(clear_sqlmodel, caplog):
7+
class Hero(SQLModel, table=True):
8+
nullable_integer_primary_key: Optional[int] = Field(
9+
default=None, primary_key=True
10+
)
11+
not_null_string: str = Field(default=..., nullable=False)
12+
nullable_optional_string: Optional[str] = Field(default=None, nullable=True)
13+
nullable_integer: Optional[int] = None
14+
not_null_integer: int
15+
16+
engine = create_engine("sqlite://", echo=True)
17+
SQLModel.metadata.create_all(engine)
18+
19+
create_table_log = [
20+
message for message in caplog.messages if "CREATE TABLE hero" in message
21+
][0]
22+
assert "\n\tnullable_integer_primary_key INTEGER NOT NULL," in create_table_log
23+
assert "\n\tnot_null_string VARCHAR NOT NULL," in create_table_log
24+
assert "\n\tnullable_optional_string VARCHAR," in create_table_log
25+
assert "\n\tnullable_integer INTEGER," in create_table_log
26+
assert "\n\tnot_null_integer INTEGER NOT NULL," in create_table_log

0 commit comments

Comments
 (0)