chore: auto release commit (2026-07-03 18:50:07)
All checks were successful
技能自动化发布 / release (push) Successful in 6s
All checks were successful
技能自动化发布 / release (push) Successful in 6s
This commit is contained in:
@@ -174,6 +174,84 @@ class TestDocsStandards(unittest.TestCase):
|
||||
self.assertIn("RpaVideoSession", text)
|
||||
self.assertIn("1.0.17", text)
|
||||
|
||||
def test_rpa_md_forbids_rpa_helpers_import(self) -> None:
|
||||
text = self._read("development/RPA.md")
|
||||
self.assertIn("rpa_helpers", text)
|
||||
self.assertTrue(
|
||||
"不要 import" in text or "不要" in text and "import" in text,
|
||||
msg="RPA.md must document forbidding rpa_helpers import",
|
||||
)
|
||||
|
||||
def test_rpa_md_covers_simulator_playwright_layering(self) -> None:
|
||||
text = self._read("development/RPA.md")
|
||||
self.assertTrue(
|
||||
"simulator_playwright" in text
|
||||
or ("薄 adapter" in text and "playwright.py" in text),
|
||||
msg="RPA.md must describe thin adapter + *_playwright.py layering",
|
||||
)
|
||||
|
||||
def test_rpa_md_covers_industry_simulator_portal(self) -> None:
|
||||
text = self._read("development/RPA.md")
|
||||
self.assertTrue(
|
||||
any(marker in text for marker in ("jc2009", "行业仿真", "门户")),
|
||||
msg="RPA.md must mention jc2009 / industry simulator / portal gate",
|
||||
)
|
||||
|
||||
def test_simulator_example_readme_covers_async_and_account_manager(self) -> None:
|
||||
text = self._read("examples/simulator_browser_rpa/README.md")
|
||||
self.assertIn("async", text.lower())
|
||||
self.assertTrue(
|
||||
"account-manager" in text.lower() or "pick-web" in text or "pick_web_account" in text,
|
||||
msg="simulator_browser_rpa README must mention async and account-manager",
|
||||
)
|
||||
|
||||
def test_development_md_documents_scaffold_and_git_cleanup(self) -> None:
|
||||
text = self._read("development/DEVELOPMENT.md")
|
||||
self.assertTrue(
|
||||
"scaffold_skill" in text or "scaffold_skill.ps1" in text,
|
||||
msg="DEVELOPMENT.md must document scaffold_skill",
|
||||
)
|
||||
self.assertTrue(
|
||||
("Remove-Item" in text and ".git" in text)
|
||||
or ("删除" in text and ".git" in text),
|
||||
msg="DEVELOPMENT.md must document deleting .git",
|
||||
)
|
||||
|
||||
def test_naming_md_copy_flow_documents_scaffold_or_git_cleanup(self) -> None:
|
||||
text = self._read("development/NAMING.md")
|
||||
self.assertTrue(
|
||||
"scaffold" in text.lower() or ("清理" in text and ".git" in text),
|
||||
msg="NAMING.md §9 must mention scaffold or Git cleanup",
|
||||
)
|
||||
|
||||
def test_scaffold_ps1_exists(self) -> None:
|
||||
path = os.path.join(get_skill_root(), "tools", "scaffold_skill.ps1")
|
||||
self.assertTrue(os.path.isfile(path), msg="tools/scaffold_skill.ps1 must exist")
|
||||
|
||||
def test_guarded_docs_do_not_reference_amazon_implementation(self) -> None:
|
||||
forbidden = (
|
||||
"download-settlement-report-amazon",
|
||||
"amazon_sim",
|
||||
"#amz-email",
|
||||
)
|
||||
guarded_docs = (
|
||||
"development/RPA.md",
|
||||
"development/ADAPTER.md",
|
||||
"development/DEVELOPMENT.md",
|
||||
"development/CONFIG.md",
|
||||
"development/TESTING.md",
|
||||
"examples/README.md",
|
||||
"examples/simulator_browser_rpa/README.md",
|
||||
)
|
||||
for rel in guarded_docs:
|
||||
text = self._read(rel)
|
||||
for fragment in forbidden:
|
||||
self.assertNotIn(
|
||||
fragment,
|
||||
text,
|
||||
msg=f"{rel} must not reference Amazon implementation {fragment!r}",
|
||||
)
|
||||
|
||||
def test_adapter_md_covers_four_tiers_and_config_get(self) -> None:
|
||||
text = self._read("development/ADAPTER.md")
|
||||
for marker in (
|
||||
|
||||
Reference in New Issue
Block a user