mirror of
https://github.com/PrefectHQ/fastmcp.git
synced 2026-08-24 06:24:18 +02:00
Fix string escaping issues in generate-cli
- Use single-quoted docstrings to avoid triple-quote escaping issues - Escape quotes in app_name derived from server_name - Add tests for descriptions with quotes and server names with quotes Addresses CodeRabbit review comments about insufficient escaping.
This commit is contained in:
parent
68cd6770a9
commit
89c4242034
2 changed files with 37 additions and 6 deletions
|
|
@ -230,7 +230,22 @@ class TestToolFunctionSource:
|
|||
},
|
||||
)
|
||||
source = _tool_function_source(tool)
|
||||
assert '"""Say hello to someone."""' in source
|
||||
assert "'''Say hello to someone.'''" in source
|
||||
|
||||
def test_description_with_quotes(self):
|
||||
tool = mcp.types.Tool(
|
||||
name="fetch",
|
||||
description="Fetch data from 'source' API.",
|
||||
inputSchema={
|
||||
"properties": {"url": {"type": "string"}},
|
||||
"required": ["url"],
|
||||
},
|
||||
)
|
||||
source = _tool_function_source(tool)
|
||||
# Should escape single quotes in the description
|
||||
assert r"Fetch data from \'source\' API." in source
|
||||
# Generated code should compile
|
||||
compile(source, "<test>", "exec")
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
|
|
@ -343,6 +358,20 @@ class TestGenerateCliScript:
|
|||
compile(script, "<generated>", "exec")
|
||||
assert "call_tool_app" in script
|
||||
|
||||
def test_server_name_with_quotes(self):
|
||||
"""Test that server names with quotes are properly escaped."""
|
||||
script = generate_cli_script(
|
||||
server_name='Test "Server" Name',
|
||||
server_spec="test",
|
||||
transport_code='"http://localhost"',
|
||||
extra_imports=set(),
|
||||
tools=[],
|
||||
)
|
||||
# Should compile without syntax errors
|
||||
compile(script, "<generated>", "exec")
|
||||
# App name should have escaped quotes
|
||||
assert r'app = cyclopts.App(name="test-\"server\"-name"' in script
|
||||
|
||||
def test_compiles_with_unusual_names(self):
|
||||
tools = [
|
||||
mcp.types.Tool(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue