refactor: per-operation DB sessions and ServiceError in SessionService
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -3,6 +3,7 @@ from unittest.mock import AsyncMock, MagicMock
|
||||
|
||||
from sqlalchemy import create_engine
|
||||
from sqlalchemy.orm import sessionmaker
|
||||
from sqlalchemy.pool import StaticPool
|
||||
|
||||
from hqt.db.models import Base, Harness
|
||||
from hqt.projects.service import ProjectService
|
||||
@@ -13,9 +14,13 @@ from hqt.harnesses.configurators.claude import ClaudeConfigurator
|
||||
|
||||
@pytest.fixture
|
||||
def setup():
|
||||
engine = create_engine("sqlite:///:memory:")
|
||||
engine = create_engine(
|
||||
"sqlite://",
|
||||
connect_args={"check_same_thread": False},
|
||||
poolclass=StaticPool,
|
||||
)
|
||||
Base.metadata.create_all(engine)
|
||||
factory = sessionmaker(bind=engine)
|
||||
factory = sessionmaker(bind=engine, expire_on_commit=False)
|
||||
db = factory()
|
||||
db.add(Harness(name="claude-code", display_name="Claude Code"))
|
||||
db.commit()
|
||||
@@ -32,8 +37,8 @@ def setup():
|
||||
configurator = ClaudeConfigurator()
|
||||
harnesses = {"claude-code": configurator}
|
||||
|
||||
proj_svc = ProjectService(db)
|
||||
sess_svc = SessionService(db=db, tmux=tmux, harnesses=harnesses)
|
||||
proj_svc = ProjectService(factory)
|
||||
sess_svc = SessionService(factory=factory, tmux=tmux, harnesses=harnesses)
|
||||
return proj_svc, sess_svc, tmux
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user