"""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("