| from __future__ import annotations |
|
|
| import tempfile |
| import unittest |
| from pathlib import Path |
|
|
| from mcp_tools.tools import ( |
| dataset_stats_tool, |
| hf_dataset_preview_tool, |
| model_inference_tool, |
| safe_calculator_tool, |
| tool_registry, |
| vindex_plan_tool, |
| ) |
|
|
|
|
| class McpToolsTest(unittest.TestCase): |
| def test_dataset_stats_tool(self) -> None: |
| with tempfile.TemporaryDirectory() as tmp: |
| path = Path(tmp) / "data.csv" |
| path.write_text("prompt,response\nhello,world\nempty,\n", encoding="utf-8") |
|
|
| result = dataset_stats_tool(str(path)) |
|
|
| self.assertEqual(result.name, "dataset_stats") |
| self.assertEqual(result.payload["rows"], 2) |
| self.assertEqual(result.payload["non_empty_by_column"]["response"], 1) |
|
|
| def test_safe_calculator_tool(self) -> None: |
| result = safe_calculator_tool("2 + 3 * 4") |
|
|
| self.assertEqual(result.payload["value"], 14) |
|
|
| def test_safe_calculator_rejects_names(self) -> None: |
| with self.assertRaises(ValueError): |
| safe_calculator_tool("__import__('os').system('echo nope')") |
|
|
| def test_model_inference_tool_uses_placeholder_backend(self) -> None: |
| result = model_inference_tool("Hello") |
|
|
| self.assertIn("Placeholder response", result.payload["response"]) |
|
|
| def test_hf_dataset_preview_tool_reports_missing_optional_package(self) -> None: |
| result = hf_dataset_preview_tool("demo/dataset") |
|
|
| self.assertEqual(result.name, "hf_dataset_preview") |
| self.assertIn("status", result.payload) |
|
|
| def test_tool_registry_contains_expected_tools(self) -> None: |
| registry = tool_registry() |
|
|
| self.assertIn("dataset_stats", registry) |
| self.assertIn("safe_calculator", registry) |
| self.assertIn("model_inference", registry) |
| self.assertIn("vindex_plan", registry) |
|
|
| def test_vindex_plan_tool_returns_non_executing_plan(self) -> None: |
| result = vindex_plan_tool("logit_lens", {"model_id": "demo", "text": "hello"}) |
|
|
| self.assertEqual(result.name, "vindex_plan") |
| self.assertFalse(result.payload["ready_for_execution"]) |
| self.assertEqual(result.payload["call_plan"]["method"], "logit_lens") |
|
|
|
|
| if __name__ == "__main__": |
| unittest.main() |
|
|