test(harness): reorganize regression suites and preserve contract coverage
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
"""Documentation contracts only; runtime collector coverage is separate."""
|
||||
from pathlib import Path
|
||||
import re
|
||||
import unittest
|
||||
|
||||
from harness.tests._support.paths import HARNESS
|
||||
DISCOVERY = HARNESS / 'agents/spec/skills/gitea-discovery-review/SKILL.md'
|
||||
IMPLEMENTATION = HARNESS / 'agents/spec/skills/gitea-implementation-spec-review/SKILL.md'
|
||||
README = HARNESS / 'docs/discovery/README.md'
|
||||
|
||||
|
||||
class PriorityReviewContracts(unittest.TestCase):
|
||||
|
||||
def test_issue_body_provider_revision_documentation_contract(self):
|
||||
access = (HARNESS / 'operations/gitea-access.md').read_text()
|
||||
contract = access.split('### Issue body update의 provider-derived readback', 1)[-1]
|
||||
for required in ('content_version', 'updated_at'):
|
||||
self.assertIn(required, contract)
|
||||
authoring = (HARNESS / 'agents/spec/skills/gitea-discovery-authoring/SKILL.md').read_text()
|
||||
for text in (DISCOVERY.read_text(), authoring):
|
||||
self.assertIn('Issue body update의 provider-derived readback', text)
|
||||
self.assertIn('content_version', text)
|
||||
self.assertIn('post-comment snapshot을 body update 직전 baseline', authoring)
|
||||
|
||||
|
||||
def test_rework_report_documentation_contract_requires_categories_and_counting_rules(self):
|
||||
text = IMPLEMENTATION.read_text()
|
||||
section = text.split('### Named test 근거와 재작업 보고', 1)[1].split('\n## ', 1)[0]
|
||||
for rule in ('해소:', '잔여:', '신규:', '문서 보완:', '해당 없음'):
|
||||
with self.subTest(rule=rule):
|
||||
self.assertIn(rule, section)
|
||||
|
||||
|
||||
def test_changed_readback_helper_documentation_contract_is_conditional_and_precreate(self):
|
||||
text = IMPLEMENTATION.read_text()
|
||||
heading = '### 비정본·변경된 readback helper 호출 계약'
|
||||
self.assertIn(heading, text, 'conditional readback invocation guidance is missing')
|
||||
section = text.split(heading, 1)[1].split('\n## ', 1)[0]
|
||||
for rule in ('native create 이전', 'inspect.signature', '.bind('):
|
||||
with self.subTest(rule=rule):
|
||||
self.assertIn(rule, section)
|
||||
step = text.split('17. 호출 전에', 1)[1].split('\n18.', 1)[0]
|
||||
self.assertIn('비정본·변경된 readback helper 호출 계약', step)
|
||||
self.assertLess(step.index('비정본·변경된 readback helper 호출 계약'), step.index('Native review create를'))
|
||||
|
||||
def test_discovery_checker_documentation_contract_preserves_bytes_and_bounded_transformations(self):
|
||||
text = DISCOVERY.read_text()
|
||||
heading = '### 임시·변경된 Discovery checker 준비'
|
||||
self.assertIn(heading, text, 'bounded Discovery checker preparation guidance is missing')
|
||||
section = text.split(heading, 1)[1].split('\n## ', 1)[0]
|
||||
for rule in ('LF/CRLF', 'splitlines', 'flags='):
|
||||
with self.subTest(rule=rule):
|
||||
self.assertIn(rule, section)
|
||||
step = text.split('11. trusted workflow directory', 1)[1].split('\n12.', 1)[0]
|
||||
self.assertIn('임시·변경된 Discovery checker 준비', step)
|
||||
|
||||
def test_local_links_resolve_and_procedures_reference_new_rules(self):
|
||||
for path in (DISCOVERY, IMPLEMENTATION, README):
|
||||
text = path.read_text()
|
||||
for link in re.findall('\\]\\(([^)]+)\\)', text):
|
||||
if not link.startswith(('http:', 'https:', '#')):
|
||||
self.assertTrue((path.parent / link.split('#')[0]).exists(), link)
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user