28 lines
933 B
Python
28 lines
933 B
Python
from typing import Optional
|
||
from sqlmodel import SQLModel, Field
|
||
|
||
from sqlmodel_pg_kit import create_all, Repository
|
||
|
||
|
||
def test_smoke(tmp_path, monkeypatch):
|
||
# 用 SQLite 临时库跑一遍(替换 cfg 同步 URL)
|
||
from sqlmodel_pg_kit import db
|
||
from sqlmodel_pg_kit.db import get_session
|
||
|
||
class Hero(SQLModel, table=True):
|
||
id: Optional[int] = Field(default=None, primary_key=True)
|
||
name: str = Field(index=True)
|
||
age: Optional[int] = None
|
||
|
||
monkeypatch.setattr(db, "cfg", db.DatabaseConfig(
|
||
host="", port=0, user="", password="", database=":memory:", sslmode="disable"
|
||
))
|
||
monkeypatch.setattr(db, "engine", db.create_engine("sqlite:///:memory:", echo=False))
|
||
|
||
create_all()
|
||
repo = Repository(Hero)
|
||
with get_session() as s:
|
||
repo.create(s, {"name": "Iron Man", "age": 45})
|
||
names = [h.name for h in repo.list(s)]
|
||
assert names == ["Iron Man"]
|