test: add CI guard for manifest.name parity and global uniqueness (#280) - #288
test: add CI guard for manifest.name parity and global uniqueness (#280)#288UroojFatima-052 wants to merge 2 commits into
Conversation
|
Thanks for this @UroojFatima-052, the test design and TESTING.md updates look great. Before merge, please fold in a few repo-standard extras so we can merge once without a follow-up: fix the duplicate That keeps docs, contributor workflow, and changelog aligned with how we land framework tests elsewhere. <3 |
|
Done, folded in all four items. Ready for another look, thanks! |
Closes #280
Adds a static YAML scan under
tests/test_registry_identity.pythat runs as part ofpytest tests/in CI. Two independent tests, following the discovery pattern fromtests/test_skill_issuer.py.Changes
tests/test_registry_identity.py(new)test_registry_manifest_name_matches_path, for every registry-layout skill (skills/<category>/<skill_name>/), assertsmanifest.nameequals the path-derived registry ID. Whitespace-only names are treated as missing (strip first). Flat layouts are skipped since_expected_registry_idreturnsNonefor them.test_registry_manifest_names_are_globally_unique, groups skill paths bymanifest.nameusingdefaultdict(list); asserts no name has more than one path. Duplicate failures report both conflicting paths.REPO_ROOTfor readability in CI logs.docs/TESTING.mdtest_registry_identity.pyrow to the Status table.CHANGELOG.md[Unreleased] > Added.Notes
main(2 passed in 0.47s).black --checkandflake8clean.load_skill_by_id(),index.json, or promotingSkillwareIdentityWarningto a hard error.