study-buddy / tests /test_project_activity.py
GitHub Actions
deploy b3d187d69e5df10bb2ec396e89f539f853465a06
14184e3
Raw
History Blame Contribute Delete
1.13 kB
from pathlib import Path
from app.services.project_activity import ProjectActivityService
def test_activity_service_appends_and_lists_newest_first(tmp_path):
service = ProjectActivityService(root=str(tmp_path))
first = service.record("p1", "paper_added", "Added paper", status="running", metadata={"file": "a.pdf"})
second = service.record("p1", "memory_flush", "Project memory deepened")
rows = service.list("p1")
assert [row.event_id for row in rows] == [second.event_id, first.event_id]
assert rows[0].event_type == "memory_flush"
assert rows[1].metadata == {"file": "a.pdf"}
assert Path(tmp_path / "p1.jsonl").exists()
def test_activity_service_token_usage_helper(tmp_path):
service = ProjectActivityService(root=str(tmp_path))
service.record_llm_usage(
project_id="p1",
operation="structured_complete",
tokens=120,
elapsed_seconds=0.5,
model="gemma-4-31b",
)
row = service.list("p1")[0]
assert row.event_type == "llm_usage"
assert row.metadata["tokens"] == 120
assert row.metadata["tokens_per_second"] == 240.0