Spaces:
Paused
Paused
| from types import SimpleNamespace | |
| from unittest.mock import MagicMock, patch | |
| from run_agent import AIAgent | |
| def _mock_response(*, usage: dict, content: str = "done"): | |
| msg = SimpleNamespace(content=content, tool_calls=None) | |
| choice = SimpleNamespace(message=msg, finish_reason="stop") | |
| return SimpleNamespace( | |
| choices=[choice], | |
| model="test/model", | |
| usage=SimpleNamespace(**usage), | |
| ) | |
| def _make_agent(session_db, *, platform: str): | |
| with ( | |
| patch("run_agent.get_tool_definitions", return_value=[]), | |
| patch("run_agent.check_toolset_requirements", return_value={}), | |
| patch("run_agent.OpenAI"), | |
| ): | |
| agent = AIAgent( | |
| api_key="test-key", | |
| quiet_mode=True, | |
| skip_context_files=True, | |
| skip_memory=True, | |
| session_db=session_db, | |
| session_id=f"{platform}-session", | |
| platform=platform, | |
| ) | |
| agent.client = MagicMock() | |
| agent.client.chat.completions.create.return_value = _mock_response( | |
| usage={ | |
| "prompt_tokens": 11, | |
| "completion_tokens": 7, | |
| "total_tokens": 18, | |
| } | |
| ) | |
| return agent | |
| def test_run_conversation_persists_tokens_for_telegram_sessions(): | |
| session_db = MagicMock() | |
| agent = _make_agent(session_db, platform="telegram") | |
| result = agent.run_conversation("hello") | |
| assert result["final_response"] == "done" | |
| session_db.update_token_counts.assert_called_once() | |
| assert session_db.update_token_counts.call_args.args[0] == "telegram-session" | |
| def test_run_conversation_persists_tokens_for_cron_sessions(): | |
| session_db = MagicMock() | |
| agent = _make_agent(session_db, platform="cron") | |
| result = agent.run_conversation("hello") | |
| assert result["final_response"] == "done" | |
| session_db.update_token_counts.assert_called_once() | |
| assert session_db.update_token_counts.call_args.args[0] == "cron-session" | |