diff --git a/tests/unit_tests/commands/semantic_layer/update_test.py b/tests/unit_tests/commands/semantic_layer/update_test.py index 3bf85738edf..1b144428e89 100644 --- a/tests/unit_tests/commands/semantic_layer/update_test.py +++ b/tests/unit_tests/commands/semantic_layer/update_test.py @@ -221,116 +221,6 @@ def test_update_semantic_layer_copies_data(mocker: MockerFixture) -> None: assert original_data == {"description": "Original"} -# ============================================================================= -# UpdateSemanticLayerCommand tests -# ============================================================================= - - -def test_update_semantic_layer_success(mocker: MockerFixture) -> None: - """Test successful update of a semantic layer.""" - mock_model = MagicMock() - mock_model.type = "snowflake" - - dao = mocker.patch( - "superset.commands.semantic_layer.update.SemanticLayerDAO", - ) - dao.find_by_uuid.return_value = mock_model - dao.update.return_value = mock_model - - data = {"name": "Updated", "description": "New desc"} - result = UpdateSemanticLayerCommand("some-uuid", data).run() - - assert result == mock_model - dao.find_by_uuid.assert_called_once_with("some-uuid") - dao.update.assert_called_once_with(mock_model, attributes=data) - - -def test_update_semantic_layer_not_found(mocker: MockerFixture) -> None: - """Test that SemanticLayerNotFoundError is raised when model is missing.""" - dao = mocker.patch( - "superset.commands.semantic_layer.update.SemanticLayerDAO", - ) - dao.find_by_uuid.return_value = None - - with pytest.raises(SemanticLayerNotFoundError): - UpdateSemanticLayerCommand("missing-uuid", {"name": "test"}).run() - - -def test_update_semantic_layer_duplicate_name(mocker: MockerFixture) -> None: - """Test that SemanticLayerInvalidError is raised for duplicate names.""" - mock_model = MagicMock() - mock_model.type = "snowflake" - - dao = mocker.patch( - "superset.commands.semantic_layer.update.SemanticLayerDAO", - ) - dao.find_by_uuid.return_value = mock_model - dao.validate_update_uniqueness.return_value = False - - with pytest.raises(SemanticLayerInvalidError): - UpdateSemanticLayerCommand("some-uuid", {"name": "Duplicate"}).run() - - -def test_update_semantic_layer_validates_configuration( - mocker: MockerFixture, -) -> None: - """Test that configuration is validated against the plugin.""" - mock_model = MagicMock() - mock_model.type = "snowflake" - - dao = mocker.patch( - "superset.commands.semantic_layer.update.SemanticLayerDAO", - ) - dao.find_by_uuid.return_value = mock_model - dao.update.return_value = mock_model - - mock_cls = MagicMock() - mocker.patch.dict( - "superset.commands.semantic_layer.update.registry", - {"snowflake": mock_cls}, - ) - - config = {"account": "test"} - UpdateSemanticLayerCommand("some-uuid", {"configuration": config}).run() - - mock_cls.from_configuration.assert_called_once_with(config) - - -def test_update_semantic_layer_skips_name_check_when_no_name( - mocker: MockerFixture, -) -> None: - """Test that name uniqueness is not checked when name is not provided.""" - mock_model = MagicMock() - mock_model.type = "snowflake" - - dao = mocker.patch( - "superset.commands.semantic_layer.update.SemanticLayerDAO", - ) - dao.find_by_uuid.return_value = mock_model - dao.update.return_value = mock_model - - UpdateSemanticLayerCommand("some-uuid", {"description": "Updated"}).run() - - dao.validate_update_uniqueness.assert_not_called() - - -def test_update_semantic_layer_copies_data(mocker: MockerFixture) -> None: - """Test that the command copies input data and does not mutate it.""" - mock_model = MagicMock() - mock_model.type = "snowflake" - - dao = mocker.patch( - "superset.commands.semantic_layer.update.SemanticLayerDAO", - ) - dao.find_by_uuid.return_value = mock_model - dao.update.return_value = mock_model - - original_data = {"description": "Original"} - UpdateSemanticLayerCommand("some-uuid", original_data).run() - - assert original_data == {"description": "Original"} - - def _make_view_model( uuid: str = "view-uuid-1", name: str = "my_view",