mirror of
https://github.com/apache/superset.git
synced 2026-05-12 19:35:17 +00:00
update: add new ModelGetAvailableFiltersTool
This commit is contained in:
@@ -225,30 +225,20 @@ async def test_get_chart_info_not_found(mock_info, mcp_server):
|
||||
result = await client.call_tool("get_chart_info", {"chart_id": 999})
|
||||
assert result.data["error_type"] == "not_found"
|
||||
|
||||
@pytest.mark.xfail(reason="MCP protocol bug: dict fields named column_operators are deserialized as custom types (Column_Operators). TODO: revisit after protocol fix.")
|
||||
@pytest.mark.asyncio
|
||||
async def test_get_chart_available_filters_success(mcp_server):
|
||||
async with Client(mcp_server) as client:
|
||||
result = await client.call_tool("get_chart_available_filters")
|
||||
assert hasattr(result.data, "filters")
|
||||
print("DEBUG filters:", result.data.filters, type(result.data.filters), getattr(result.data.filters, '__dict__', None))
|
||||
print("DEBUG filters class:", result.data.filters.__class__)
|
||||
print("DEBUG filters value:", result.data.filters)
|
||||
# assert "slice_name" in filters_dict
|
||||
assert "eq" in result.data.operators
|
||||
assert "slice_name" in result.data.columns or "id" in result.data.columns
|
||||
result = await client.call_tool("get_chart_available_filters", {})
|
||||
assert hasattr(result.data, "column_operators")
|
||||
assert isinstance(result.data.column_operators, dict)
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_get_chart_available_filters_exception_handling(mcp_server):
|
||||
# No exception expected in normal operation
|
||||
async with Client(mcp_server) as client:
|
||||
result = await client.call_tool("get_chart_available_filters")
|
||||
assert hasattr(result.data, "filters")
|
||||
assert hasattr(result.data, "operators")
|
||||
assert hasattr(result.data, "columns")
|
||||
print("DEBUG filters class:", result.data.filters.__class__)
|
||||
print("DEBUG filters value:", result.data.filters)
|
||||
assert result.data.filters is not None
|
||||
assert isinstance(result.data.operators, list)
|
||||
assert isinstance(result.data.columns, list)
|
||||
result = await client.call_tool("get_chart_available_filters", {})
|
||||
assert hasattr(result.data, "column_operators")
|
||||
|
||||
@pytest.mark.asyncio
|
||||
@patch('superset.commands.chart.create.CreateChartCommand.run')
|
||||
|
||||
Reference in New Issue
Block a user