File size: 1,458 Bytes
f27b882 c90ac2d efa5c7c 2ef7f43 f27b882 adea8c3 f27b882 adea8c3 f27b882 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | import pytest
import os
os.environ["TESTING"] = "true"
os.environ["APP_ENV"] = "test"
os.environ["HF_TOKEN"] = "mock-token"
from fastapi.testclient import TestClient
from sqlmodel import SQLModel, Session, create_engine
from sqlmodel.pool import StaticPool
from app import app
from codelens_env.database import get_session
from codelens_env.env import CodeLensEnv
from codelens_env.models import TaskId, Action, ActionType, Severity, Category, Verdict
@pytest.fixture(name="session")
def session_fixture():
"""In-memory SQLite session for tests."""
engine = create_engine(
"sqlite://",
connect_args={"check_same_thread": False},
poolclass=StaticPool,
)
SQLModel.metadata.create_all(engine)
with Session(engine) as session:
yield session
@pytest.fixture(name="client")
def client_fixture(session):
"""TestClient with DB dependency override."""
def get_session_override():
yield session
app.dependency_overrides[get_session] = get_session_override
client = TestClient(app)
yield client
app.dependency_overrides.clear()
@pytest.fixture
def env():
return CodeLensEnv()
@pytest.fixture
def approve_action():
return Action(action_type=ActionType.APPROVE, body="LGTM", verdict=Verdict.LGTM)
@pytest.fixture
def request_changes_action():
return Action(action_type=ActionType.REQUEST_CHANGES, body="Issues found",
verdict=Verdict.REQUEST_CHANGES)
|