M9.2-M9.5: Add improvement pipeline, community workflow, transitive integrity, and supply chain attestation

This commit is contained in:
rob
2026-07-20 15:43:14 -03:00
parent bf3686ae40
commit 04153a4bbd
8 changed files with 945 additions and 0 deletions
+80
View File
@@ -0,0 +1,80 @@
"""Tests for M9.3 community improvement workflow."""
from cmdforge.community import (
ImprovementSubmission,
create_submission,
run_submission_tests,
review_submission,
)
from cmdforge.tool import Tool, PromptStep, CodeStep
class TestCreateSubmission:
def test_create_for_prompt_step(self):
tool = Tool(
name="test",
version="1.0.0",
steps=[PromptStep(prompt="Summarize", provider="mock", output_var="x")],
output="{x}",
)
sub = create_submission(tool, 0, "Summarize the text thoroughly", "alice", "More detail")
assert sub.tool_name == "test"
assert sub.step_type == "prompt"
assert sub.original == "Summarize"
assert sub.proposed == "Summarize the text thoroughly"
assert sub.submitter == "alice"
assert sub.status == "pending"
def test_create_for_code_step(self):
tool = Tool(
name="test",
steps=[CodeStep(code="x = 1", output_var="x")],
output="{x}",
)
sub = create_submission(tool, 0, "x = 42", "bob")
assert sub.step_type == "code"
assert sub.original == "x = 1"
def test_invalid_step_index(self):
tool = Tool(name="test")
try:
create_submission(tool, 5, "new", "alice")
assert False, "Should have raised"
except ValueError:
pass
class TestReviewSubmission:
def test_review_approved(self):
sub = ImprovementSubmission(
tool_name="test", tool_version="1.0.0", submitter="alice",
step_index=0, step_type="prompt", original="a", proposed="b",
status="tested",
)
review = review_submission(sub, "approve", "admin", "Good improvement")
assert review.decision == "approve"
assert sub.status == "approve"
def test_review_pending_rejected(self):
sub = ImprovementSubmission(
tool_name="test", tool_version="1.0.0", submitter="alice",
step_index=0, step_type="prompt", original="a", proposed="b",
status="pending",
)
try:
review_submission(sub, "approve", "admin")
assert False, "Should have raised"
except ValueError:
pass
def test_invalid_decision(self):
sub = ImprovementSubmission(
tool_name="test", tool_version="1.0.0", submitter="alice",
step_index=0, step_type="prompt", original="a", proposed="b",
status="tested",
)
try:
review_submission(sub, "maybe", "admin")
assert False, "Should have raised"
except ValueError:
pass