Spaces:
Runtime error
Runtime error
| """Tests for autonomous study agent.""" | |
| from __future__ import annotations | |
| import os | |
| import unittest | |
| from plane_mode_scholar.core.study_agent import AGENT_TOOLS, StudyAgent | |
| from plane_mode_scholar.ingestion.pack_builder import PackBuilder | |
| from plane_mode_scholar.storage.sqlite_store import SQLiteStore | |
| class StudyAgentTests(unittest.TestCase): | |
| def test_tools_defined(self) -> None: | |
| names = {t["name"] for t in AGENT_TOOLS} | |
| self.assertIn("ensure_pack", names) | |
| self.assertIn("explain_topic", names) | |
| self.assertIn("run_quiz", names) | |
| def test_plan_prefers_session_start(self) -> None: | |
| agent = StudyAgent() | |
| plan = agent.plan_next_action("pack_x", "user", None) | |
| self.assertEqual(plan["action"], "start_session") | |
| def test_autopilot_yields_boot(self) -> None: | |
| store = SQLiteStore() | |
| pb = PackBuilder(store) | |
| demo = os.path.normpath("plane_mode_scholar/data/demo_notes.txt") | |
| if not os.path.exists(demo): | |
| self.skipTest("demo notes missing") | |
| result = pb.create_pack("Agent", "ML", file_paths=[demo], user_id="agent_user") | |
| pack_id = result["pack"]["pack_id"] | |
| agent = StudyAgent(store) | |
| events = list(agent.run_autopilot("agent_user", pack_id, max_steps=1)) | |
| phases = [e["phase"] for e in events] | |
| self.assertIn("BOOT", phases) | |
| self.assertTrue(any(p in phases for p in ("PACK", "SESSION", "ERROR"))) | |
| if __name__ == "__main__": | |
| unittest.main() | |