Spaces:
Sleeping
Sleeping
| 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 | |