"""Studio 三个 HTTP 入口的物理路径合同。""" from __future__ import annotations import pathlib import unittest from unittest import mock ROOT = next( parent for parent in (pathlib.Path(__file__).resolve().parent, *pathlib.Path(__file__).resolve().parents) if (parent / "AGENTS.md").is_file() and (parent / ".git").exists() ) if str(ROOT) not in __import__("sys").path: __import__("sys").path.insert(0, str(ROOT)) class StudioPathContractTest(unittest.TestCase): def test_studio入口都解析到独立仓根并能加载业务脚本(self) -> None: from muse.authority.studio.read import server from muse.authority.studio.write.decision import decision_channel from muse.authority.studio.write.lesson import lesson_confirm self.assertEqual(server.PROJECT_ROOT, ROOT) self.assertEqual( server.WRITE_CHAPTER_ARTIFACTS, ROOT / "docs" / "write-chapter" / "artifacts", ) self.assertEqual(decision_channel.PROJECT_ROOT, ROOT) self.assertTrue( (ROOT / "muse" / "content" / "work" / "skills" / "sovereignty" / "决定正文候选去留" / "scripts" / "write_canonical.py").is_file() ) self.assertEqual(lesson_confirm.PROJECT_ROOT, ROOT) self.assertEqual( lesson_confirm.EVIDENCE, ROOT / "muse" / "authority" / "evidence" / "skills" / "记录运行证据" / "scripts", ) def test写通道页面具备地标和键盘可达正文滚动区(self) -> None: from muse.authority.studio.write.decision import decision_channel from muse.authority.studio.write.lesson import lesson_confirm decision_page = decision_channel._page("测试", "
正文
") lesson_page = lesson_confirm._page("测试", "
详情
") self.assertIn("
", decision_page) self.assertIn("
", lesson_page) with mock.patch.object( decision_channel, "_load_candidate", return_value={ "id": 1, "work_id": 1, "chapter": 1, "run_id": "run", "attempt": 1, "run_type": "production", "version": "1", "sha256": "a" * 64, "body": "正文", "state": "passed", "semantic": "passed", "create_time": "now", } ): candidate_page = decision_channel.view_candidate(1) self.assertIn("tabindex='0'", candidate_page) self.assertIn( "--muted:#6b6a65", (ROOT / "muse" / "authority" / "studio" / "read" / "server.py").read_text(encoding="utf-8"), ) if __name__ == "__main__": unittest.main(verbosity=2)