You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by mi...@apache.org on 2026/06/01 17:24:31 UTC

(superset) 04/11: test(mcp): fix patch paths in test_create_dataset — CreateDatasetCommand is a lazy import

This is an automated email from the ASF dual-hosted git repository.

aminghadersohi pushed a commit to branch aminghadersohi/mcp-create-dataset
in repository https://gitbox.apache.org/repos/asf/superset.git

commit c474cadaa0d6fcee1409bd7a994e24bfa596ad2a
Author: Amin Ghadersohi <am...@gmail.com>
AuthorDate: Tue May 26 19:17:05 2026 +0000

    test(mcp): fix patch paths in test_create_dataset — CreateDatasetCommand is a lazy import
    
    CreateDatasetCommand is imported inside the function body, so patching at
    superset.mcp_service.dataset.tool.create_dataset.CreateDatasetCommand fails
    with AttributeError. Patch at the source module instead.
    
    Also fix data["schema_name"] assertions: DatasetInfo.model_serializer renames
    the field to "schema" in the serialized output.
---
 .../mcp_service/dataset/tool/test_create_dataset.py      | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/tests/unit_tests/mcp_service/dataset/tool/test_create_dataset.py b/tests/unit_tests/mcp_service/dataset/tool/test_create_dataset.py
index ae062f92346..ba2898eb660 100644
--- a/tests/unit_tests/mcp_service/dataset/tool/test_create_dataset.py
+++ b/tests/unit_tests/mcp_service/dataset/tool/test_create_dataset.py
@@ -87,7 +87,7 @@ def mock_auth():
 class TestCreateDataset:
     """Tests for the create_dataset MCP tool."""
 
-    @patch("superset.mcp_service.dataset.tool.create_dataset.CreateDatasetCommand")
+    @patch("superset.commands.dataset.create.CreateDatasetCommand")
     @pytest.mark.asyncio
     async def test_create_dataset_success(self, mock_command_class, mcp_server):
         """Happy path: tool creates dataset and returns DatasetInfo."""
@@ -112,7 +112,7 @@ class TestCreateDataset:
         data = json.loads(result.content[0].text)
         assert data["id"] == 42
         assert data["table_name"] == "orders"
-        assert data["schema_name"] == "public"
+        assert data["schema"] == "public"
 
         # Verify the command was called with the right properties
         call_kwargs = mock_command_class.call_args[0][0]
@@ -121,7 +121,7 @@ class TestCreateDataset:
         assert call_kwargs["table_name"] == "orders"
         assert "owners" not in call_kwargs
 
-    @patch("superset.mcp_service.dataset.tool.create_dataset.CreateDatasetCommand")
+    @patch("superset.commands.dataset.create.CreateDatasetCommand")
     @pytest.mark.asyncio
     async def test_create_dataset_with_owners(self, mock_command_class, mcp_server):
         """Owners list is forwarded to the command when supplied."""
@@ -149,7 +149,7 @@ class TestCreateDataset:
         call_kwargs = mock_command_class.call_args[0][0]
         assert call_kwargs["owners"] == [5, 10]
 
-    @patch("superset.mcp_service.dataset.tool.create_dataset.CreateDatasetCommand")
+    @patch("superset.commands.dataset.create.CreateDatasetCommand")
     @pytest.mark.asyncio
     async def test_create_dataset_already_exists(self, mock_command_class, mcp_server):
         """Returns DatasetError when a dataset for the table already exists."""
@@ -178,7 +178,7 @@ class TestCreateDataset:
         assert data["error_type"] == "DatasetExistsError"
         assert "error" in data
 
-    @patch("superset.mcp_service.dataset.tool.create_dataset.CreateDatasetCommand")
+    @patch("superset.commands.dataset.create.CreateDatasetCommand")
     @pytest.mark.asyncio
     async def test_create_dataset_table_not_found(self, mock_command_class, mcp_server):
         """Returns DatasetError when the physical table does not exist in the DB."""
@@ -206,7 +206,7 @@ class TestCreateDataset:
         data = json.loads(result.content[0].text)
         assert data["error_type"] == "TableNotFoundError"
 
-    @patch("superset.mcp_service.dataset.tool.create_dataset.CreateDatasetCommand")
+    @patch("superset.commands.dataset.create.CreateDatasetCommand")
     @pytest.mark.asyncio
     async def test_create_dataset_unexpected_error(
         self, mock_command_class, mcp_server
@@ -247,7 +247,7 @@ class TestCreateDataset:
                     },
                 )
 
-    @patch("superset.mcp_service.dataset.tool.create_dataset.CreateDatasetCommand")
+    @patch("superset.commands.dataset.create.CreateDatasetCommand")
     @pytest.mark.asyncio
     async def test_create_dataset_returns_full_dataset_info(
         self, mock_command_class, mcp_server
@@ -294,7 +294,7 @@ class TestCreateDataset:
         data = json.loads(result.content[0].text)
         assert data["id"] == 99
         assert data["table_name"] == "sales"
-        assert data["schema_name"] == "dw"
+        assert data["schema"] == "dw"
         assert data["is_virtual"] is False
         assert len(data["columns"]) == 1
         assert data["columns"][0]["column_name"] == "amount"