Skip to content

Commit b6cf999

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 9a9620c commit b6cf999

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
@@ -58,8 +58,8 @@
5858
from fenic.core.mcp._validators import get_param_validator
5959
from fenic.core.mcp.types import (
6060
BoundToolParam,
61-
UserDefinedTool,
6261
ToolParamConstraints,
62+
UserDefinedTool,
6363
)
6464
from fenic.core.types.datatypes import DataType
6565
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
@@ -4,8 +4,8 @@
44
from fastmcp.tools import Tool
55

66
from fenic import SystemTool, SystemToolConfig
7-
from fenic.api.mcp._tool_generation_utils import auto_generate_system_tools_from_tables
87
from fenic.api.functions import col, tool_param
8+
from fenic.api.mcp._tool_generation_utils import auto_generate_system_tools_from_tables
99
from fenic.api.mcp.server import create_mcp_server
1010
from fenic.api.session.session import Session
1111
from fenic.core._utils.misc import to_snake_case
@@ -16,7 +16,6 @@
1616

1717

1818
def test_server_generation_with_parameterized_tools(local_session: Session):
19-
pytest.importorskip("fastmcp")
2019
df = local_session.create_dataframe({"city": ["SF"], "age": [10], "user_name": ["Alice"]})
2120
query = df.filter(
2221
(col("city") == tool_param("city_name", StringType))
@@ -36,7 +35,7 @@ def test_server_generation_with_parameterized_tools(local_session: Session):
3635
query=query,
3736
)
3837

39-
server = create_mcp_server(local_session, "Test Server", parameterized_tools=[parameterized_tool])
38+
server = create_mcp_server(local_session, "Test Server", user_defined_tools=[parameterized_tool])
4039
server_tools = asyncio.run(server.mcp.get_tools())
4140
assert len(server_tools) == 1
4241
parameter_schema = server_tools["tool_x"].parameters['properties']
@@ -57,8 +56,7 @@ def test_server_generation_with_parameterized_tools(local_session: Session):
5756
assert user_names_param['minItems'] == 1
5857
assert user_names_param['description'] == "User names"
5958

60-
def test_server_generation(local_session: Session):
61-
pytest.importorskip("fastmcp")
59+
def test_server_generation_with_system_tools(local_session: Session):
6260
create_table_with_rows(local_session, "t1", [1, 2, 3], description="table one")
6361
create_table_with_rows(local_session, "t2", [10, 20], description="table two")
6462
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)