Modernize provider support
This commit is contained in:
@@ -142,6 +142,28 @@ class TestPromptStep:
|
||||
assert restored.output_var == original.output_var
|
||||
assert restored.prompt_file == original.prompt_file
|
||||
|
||||
def test_from_dict_rejects_non_integer_max_tokens(self):
|
||||
data = {
|
||||
"type": "prompt",
|
||||
"prompt": "Test",
|
||||
"provider": "claude",
|
||||
"output_var": "result",
|
||||
"max_tokens": "100; touch /tmp/pwned",
|
||||
}
|
||||
with pytest.raises(ValueError, match="max_tokens"):
|
||||
PromptStep.from_dict(data)
|
||||
|
||||
def test_from_dict_rejects_out_of_range_max_tokens(self):
|
||||
data = {
|
||||
"type": "prompt",
|
||||
"prompt": "Test",
|
||||
"provider": "claude",
|
||||
"output_var": "result",
|
||||
"max_tokens": 0,
|
||||
}
|
||||
with pytest.raises(ValueError, match="max_tokens"):
|
||||
PromptStep.from_dict(data)
|
||||
|
||||
|
||||
class TestCodeStep:
|
||||
"""Tests for CodeStep dataclass."""
|
||||
@@ -507,6 +529,22 @@ class TestLegacyFormat:
|
||||
assert len(tool.arguments) == 1
|
||||
assert tool.arguments[0].variable == "max_size"
|
||||
|
||||
def test_legacy_format_preserves_visibility(self, temp_tools_dir):
|
||||
tool_dir = temp_tools_dir / "legacy-private"
|
||||
tool_dir.mkdir(parents=True)
|
||||
|
||||
legacy_config = {
|
||||
"name": "legacy-private",
|
||||
"prompt": "Process: {input}",
|
||||
"provider": "mock",
|
||||
"visibility": "private",
|
||||
}
|
||||
(tool_dir / "config.yaml").write_text(yaml.dump(legacy_config))
|
||||
|
||||
tool = load_tool("legacy-private")
|
||||
assert tool is not None
|
||||
assert tool.visibility == "private"
|
||||
|
||||
|
||||
class TestDefaultCategories:
|
||||
"""Tests for default categories."""
|
||||
|
||||
Reference in New Issue
Block a user