Files
praxis/tests/test_e2e.py
T
Praxis CI fbd6602814 docs(milestone): complete v0.1 foundation
---ci---
phase: 0
milestone: v0.1
status: complete
---/ci---
2026-08-01 13:32:48 +00:00

38 lines
1.3 KiB
Python

"""End-to-end smoke test (TASK-05-06) — pytest entry point.
Runs scripts/e2e_smoke.py::run_e2e and asserts the full loop:
session → turns → branch → debrief → DB logged.
"""
from __future__ import annotations
import asyncio
import pytest
from scripts.e2e_smoke import run_e2e
def test_e2e_full_loop(tmp_db):
"""The full v0.1 loop completes and DB assertions pass (no live keys needed)."""
result = asyncio.run(run_e2e(db_path=str(tmp_db)))
assert result["branch_id"] in ("accept_resolution", "escalate")
assert result["turns_logged"] == 4
assert result["cost_cents"] >= 0
assert result["debrief_chars"] > 0
# Latency is logged (within or over budget); the test asserts it's logged,
# not that it's within budget (that requires live keys + real network).
assert result["max_latency_ms"] > 0
assert result["budget_ms"] == 600.0
def test_e2e_debrief_non_empty(tmp_db):
"""The debrief text is non-empty (TASK-05-06 must-have)."""
result = asyncio.run(run_e2e(db_path=str(tmp_db)))
assert result["debrief_chars"] > 50 # a real debrief is more than a stub
def test_e2e_cost_non_null(tmp_db):
"""cost_estimated_cents is non-null for a completed session (TASK-05-06 must-have)."""
result = asyncio.run(run_e2e(db_path=str(tmp_db)))
assert result["cost_cents"] is not None