"""Basic coverage for API monitor bookkeeping and budget alerts.""" from agent.api_monitor import monitor def test_api_monitor_tracks_calls_and_budget_alerts(): original_limit = monitor.stats.budget_limit original_fraction = monitor.stats.budget_alert_fraction monitor.reset() monitor.stats.budget_limit = 0.02 # force a low budget for alerting monitor.stats.budget_alert_fraction = 0.5 call_id = "test-call" monitor.start_call(call_id, "llm", "openai", "gpt-4o") monitor.complete_call(call_id, success=True, input_tokens=1000, output_tokens=2000) stats = monitor.get_stats() assert stats.total_calls == 1 assert stats.llm_calls == 1 assert stats.total_tokens == 3000 assert stats.total_cost > 0 assert stats.budget_alert_triggered is True assert "Budget" in stats.budget_status() feed = monitor.format_activity_feed() assert "Budget alert" in feed # Restore original budget settings for other tests/runs monitor.stats.budget_limit = original_limit monitor.stats.budget_alert_fraction = original_fraction monitor.reset()