| import pytest |
| from sqlalchemy import select |
| from app.db.models import AgentRun, User, BillingEvent |
|
|
|
|
| @pytest.mark.asyncio |
| async def test_create_agent_run(db_session): |
| run = AgentRun( |
| agent_id="web_research", |
| agent_name="Web Research Agent", |
| query="test query", |
| status="success", |
| tokens_used=150, |
| cost=0.15, |
| ) |
| db_session.add(run) |
| await db_session.commit() |
|
|
| stmt = select(AgentRun).where(AgentRun.agent_id == "web_research") |
| result = await db_session.execute(stmt) |
| db_run = result.scalar_one() |
| assert db_run.agent_name == "Web Research Agent" |
| assert db_run.status == "success" |
| assert db_run.tokens_used == 150 |
|
|
|
|
| @pytest.mark.asyncio |
| async def test_create_user(db_session): |
| user = User( |
| email="test@example.com", |
| name="Test User", |
| role="admin", |
| ) |
| db_session.add(user) |
| await db_session.commit() |
|
|
| stmt = select(User).where(User.email == "test@example.com") |
| result = await db_session.execute(stmt) |
| db_user = result.scalar_one() |
| assert db_user.name == "Test User" |
| assert db_user.role == "admin" |
| assert db_user.is_active is True |
|
|
|
|
| @pytest.mark.asyncio |
| async def test_create_billing_event(db_session): |
| event = BillingEvent( |
| agent_id="web_research", |
| amount=150.0, |
| currency="usd", |
| event_type="usage", |
| status="completed", |
| ) |
| db_session.add(event) |
| await db_session.commit() |
|
|
| stmt = select(BillingEvent).where(BillingEvent.agent_id == "web_research") |
| result = await db_session.execute(stmt) |
| db_event = result.scalar_one() |
| assert db_event.amount == 150.0 |
| assert db_event.status == "completed" |
|
|