Allow skill slugs without a platform suffix.
All checks were successful
技能自动化发布 / release (push) Successful in 9s

This commit is contained in:
2026-09-21 11:30:38 +08:00
parent a70da6a076
commit 8c8811e777
10 changed files with 94 additions and 53 deletions

View File

@@ -44,6 +44,8 @@ class TestSlugNaming(unittest.TestCase):
for slug in (
"download-settlement-report-amazon",
"add-product-shopee",
"generate-monthly-statements",
"reconcile-finance",
"generate-article-all",
"your-skill-slug",
"account-manager",
@@ -56,8 +58,7 @@ class TestSlugNaming(unittest.TestCase):
cases = (
"amazon-download-settlement-report",
"enter-cross-border-sales-receipt-voucher-kingdee",
"reconcile-finance",
"download-settlement-report-unknownplat",
"generate",
"foobar-settlement-report-amazon",
)
for slug in cases:
@@ -78,6 +79,19 @@ class TestSlugNaming(unittest.TestCase):
self.assertTrue(errors)
self.assertTrue(any("48" in err for err in errors))
def test_plain_slug_without_platform(self) -> None:
slug = "generate-monthly-statements"
self.assertEqual(classify_slug_form(parse_slug_segments(slug), slug=slug), "plain")
errors, warnings = validate_slug_semantics(slug)
self.assertEqual(errors, [], msg=f"errors={errors!r} warnings={warnings!r}")
self.assertEqual(warnings, [])
def test_default_suffix_warns_but_does_not_fail(self) -> None:
slug = "generate-article-default"
errors, warnings = validate_slug_semantics(slug)
self.assertEqual(errors, [], msg=f"errors={errors!r}")
self.assertTrue(any("default" in item for item in warnings), msg=f"warnings={warnings!r}")
def test_legacy_exempt_set(self) -> None:
self.assertIn("your-skill-slug", LEGACY_EXEMPT_SLUGS)
self.assertIn("account-manager", LEGACY_EXEMPT_SLUGS)