Files
gitea-agent/harness/tests/common/test_inventory_binding_contract_docs.py
T

41 lines
1.9 KiB
Python

"""Contract wiring for the read-only inventory source-binding preflight."""
import unittest
from pathlib import Path
ROOT = Path(__file__).resolve().parents[2]
class InventoryBindingDocumentationTests(unittest.TestCase):
def test_all_consumer_roles_require_binding_before_check_tests(self):
paths = [
'agents/impl/skills/gitea-issue-implementation/SKILL.md',
'agents/impl/skills/gitea-issue-rework/SKILL.md',
'agents/spec/skills/gitea-implementation-spec-review/SKILL.md',
'agents/review/skills/gitea-code-review/SKILL.md',
]
for path in paths:
with self.subTest(path=path):
text = (ROOT / path).read_text()
self.assertIn('test_inventory_binding.py', text)
self.assertIn('check-tests 이전', text)
self.assertIn('독립적으로 고정한 revision과 stage', text)
def test_canonical_reference_defines_exact_cli_and_scope_digest(self):
text = (ROOT / 'operations/repository-cache.md').read_text()
self.assertIn('### Test inventory Git source-binding preflight', text)
for value in ['--git-dir', '--expected-revision', '--expected-stage',
'gitea-agent.test-inventory-binding/v1', 'file_sha256',
'scope_paths', 'scope_sha256', 'ensure_ascii=True',
'/usr/bin/git', '/proc/self/fd/']:
self.assertIn(value, text)
def test_binding_limits_do_not_create_product_or_execution_requirements(self):
text = (ROOT / 'operations/repository-cache.md').read_text()
self.assertIn('named symbol·parameter 존재나 실제 collection 실행을 인증하지 않는다', text)
self.assertIn('현재 collection을 baseline으로 재명명하지 않는다', text)
self.assertIn('별도 checkout이나 전체 테스트 재실행을 요구하지 않는다', text)
if __name__ == '__main__':
unittest.main()