Skip to content

Commit afc439c

Browse files
committed
ensure tests will pass if no mcp dependencies are installed, install the dependencies in ci so the tests will run there
1 parent 073f2a3 commit afc439c

File tree

5 files changed

+9
-12
lines changed

5 files changed

+9
-12
lines changed

src/fenic/core/_serde/proto/serde_context.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@
5959
from fenic.core.mcp._validators import get_param_validator
6060
from fenic.core.mcp.types import (
6161
BoundToolParam,
62-
UserDefinedTool,
6362
ToolParamConstraints,
63+
UserDefinedTool,
6464
)
6565
from fenic.core.types.datatypes import DataType
6666
from fenic.core.types.schema import ColumnField, Schema

src/fenic/core/mcp/_server.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@
3737
from fenic.core.mcp.types import (
3838
SystemTool,
3939
TableFormat,
40-
UserDefinedTool,
4140
ToolParamConstraints,
41+
UserDefinedTool,
4242
)
4343
from fenic.core.types.datatypes import ArrayType
4444
from fenic.logging import configure_logging

src/fenic/core/mcp/types.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -87,10 +87,10 @@ class BoundToolParam:
8787
data_type: DataType
8888
required: bool
8989
has_default: bool
90-
default_value: Optional[ToolParameterType]
91-
allowed_values: Optional[List[ToolParameterType]]
92-
constraints: Optional[ToolParamConstraints]
93-
validators: List[ParamValidator]
90+
default_value: Optional[ToolParameterType] = None
91+
allowed_values: Optional[List[ToolParameterType]] = None
92+
constraints: Optional[ToolParamConstraints] = None
93+
validators: List[ParamValidator] = Field(default_factory=list)
9494

9595

9696
@dataclass(config=ConfigDict(arbitrary_types_allowed=True))

tests/api/mcp/test_server.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
from fastmcp.tools import Tool
77

88
from fenic import SystemTool, SystemToolConfig
9-
from fenic.api.mcp._tool_generation_utils import auto_generate_system_tools_from_tables
109
from fenic.api.functions import col, tool_param
10+
from fenic.api.mcp._tool_generation_utils import auto_generate_system_tools_from_tables
1111
from fenic.api.mcp.server import create_mcp_server
1212
from fenic.api.session.session import Session
1313
from fenic.core._utils.misc import to_snake_case
@@ -18,7 +18,6 @@
1818

1919

2020
def test_server_generation_with_parameterized_tools(local_session: Session):
21-
pytest.importorskip("fastmcp")
2221
df = local_session.create_dataframe({"city": ["SF"], "age": [10], "user_name": ["Alice"]})
2322
query = df.filter(
2423
(col("city") == tool_param("city_name", StringType))
@@ -38,7 +37,7 @@ def test_server_generation_with_parameterized_tools(local_session: Session):
3837
query=query,
3938
)
4039

41-
server = create_mcp_server(local_session, "Test Server", parameterized_tools=[parameterized_tool])
40+
server = create_mcp_server(local_session, "Test Server", user_defined_tools=[parameterized_tool])
4241
server_tools = asyncio.run(server.mcp.get_tools())
4342
assert len(server_tools) == 1
4443
parameter_schema = server_tools["tool_x"].parameters['properties']
@@ -59,8 +58,7 @@ def test_server_generation_with_parameterized_tools(local_session: Session):
5958
assert user_names_param['minItems'] == 1
6059
assert user_names_param['description'] == "User names"
6160

62-
def test_server_generation(local_session: Session):
63-
pytest.importorskip("fastmcp")
61+
def test_server_generation_with_system_tools(local_session: Session):
6462
create_table_with_rows(local_session, "t1", [1, 2, 3], description="table one")
6563
create_table_with_rows(local_session, "t2", [10, 20], description="table two")
6664
tools = auto_generate_system_tools_from_tables(["t1", "t2"], local_session, tool_namespace="Auto")

tests/core/mcp/test_binder.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,6 @@ def test_bind_parameters_type_mismatch_raises(local_session: Session):
8080
required=True,
8181
has_default=False,
8282
allowed_values=None,
83-
default_value=None,
8483
)
8584
],
8685
)

0 commit comments

Comments
 (0)