27 lines
861 B
Python
27 lines
861 B
Python
"""Tests for database engine and session management."""
|
|
|
|
from sqlmodel import Session
|
|
|
|
from app.database import get_engine, get_db_session
|
|
|
|
|
|
class TestDatabase:
|
|
"""Tests for database connection management."""
|
|
|
|
def test_get_engine_returns_engine(self) -> None:
|
|
"""get_engine should return a SQLAlchemy engine instance."""
|
|
engine = get_engine("sqlite:///data/test.db")
|
|
assert engine is not None
|
|
assert "sqlite" in str(engine.url)
|
|
|
|
def test_get_db_session_yields_session(self) -> None:
|
|
"""get_db_session should yield a usable SQLModel Session."""
|
|
engine = get_engine("sqlite:///:memory:")
|
|
session_gen = get_db_session(engine)
|
|
session = next(session_gen)
|
|
assert isinstance(session, Session)
|
|
try:
|
|
next(session_gen)
|
|
except StopIteration:
|
|
pass
|