Harden M9: Ed25519 attestation, full SHA-256 integrity, locked-by-default, prompt improvements, registry verification
This commit is contained in:
@@ -23,6 +23,21 @@ class TestTruncate:
|
||||
|
||||
|
||||
class TestGenerateVariations:
|
||||
def test_mock_provider_never_calls_external_provider(self):
|
||||
with patch("cmdforge.providers.call_provider") as call:
|
||||
_get_strategies("Summarize the text", 2, provider="mock")
|
||||
call.assert_not_called()
|
||||
|
||||
def test_selected_provider_is_honored(self):
|
||||
from cmdforge.providers import ProviderResult
|
||||
with patch(
|
||||
"cmdforge.providers.call_provider",
|
||||
return_value=ProviderResult(text="A materially clearer instruction", success=True),
|
||||
) as call:
|
||||
result = _get_strategies("Summarize the text", 1, provider="chosen")
|
||||
assert result[0][1] == "A materially clearer instruction"
|
||||
assert call.call_args.args[0] == "chosen"
|
||||
|
||||
def test_generates_for_prompt_steps(self, tmp_path):
|
||||
from cmdforge.tool import Tool, PromptStep
|
||||
|
||||
@@ -75,6 +90,29 @@ class TestGetStrategies:
|
||||
|
||||
|
||||
class TestOptimizeTool:
|
||||
def test_structural_results_do_not_claim_a_best_prompt(self):
|
||||
from cmdforge.tool import Tool, PromptStep
|
||||
tool = Tool(
|
||||
name="structural", steps=[PromptStep("Summarize", "mock", "out")],
|
||||
output="{out}", input_schema={"type": "string"},
|
||||
output_schema={"type": "string"},
|
||||
)
|
||||
result = optimize_tool(tool, count=2)
|
||||
assert result.best is None
|
||||
assert "cannot compare prompt semantics" in result.note
|
||||
|
||||
def test_behavioral_evaluator_selects_only_an_improvement(self):
|
||||
from cmdforge.tool import Tool, PromptStep
|
||||
tool = Tool(
|
||||
name="behavioral", steps=[PromptStep("Do it", "mock", "out")],
|
||||
output="{out}",
|
||||
)
|
||||
result = optimize_tool(
|
||||
tool, count=3,
|
||||
evaluator=lambda candidate: len(candidate.steps[0].prompt),
|
||||
)
|
||||
assert result.best is not None
|
||||
assert result.scores[result.best_index] > result.baseline_score
|
||||
def test_baseline_score_recorded(self, tmp_path):
|
||||
from cmdforge.tool import Tool, PromptStep
|
||||
|
||||
|
||||
Reference in New Issue
Block a user