CodeLens / tests /conftest.py
ArshVerma's picture
test: add submission tests for app middleware and inference logic to fix coverage
2ef7f43
Raw
History Blame Contribute Delete
1.46 kB
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)