def METHOD_NAME():
    name = "my_distribution"
    base_ret = {"name": name, "changes": {}}
    config = {"Enabled": True, "HttpVersion": "http2"}
    tags = {"test_tag1": "value1"}
    mock_get = MagicMock(
        return_value={
            "result": {
                "distribution": {
                    "DistributionConfig": {
                        "Enabled": False,
                        "Comment": "to be removed",
                    }
                },
                "tags": {"bad existing tag": "also to be removed"},
                "etag": "test etag",
            }
        }
    )
    diff = textwrap.dedent(
        """\
        ---
        +++
        @@ -1,5 +1,5 @@
         config:
        -  Comment: to be removed
        -  Enabled: false
        +  Enabled: true
        +  HttpVersion: http2
         tags:
        -  bad existing tag: also to be removed
        +  test_tag1: value1
    """
    ).splitlines()
    # Difflib adds a trailing space after the +++/--- lines,
    # programatically add them back here. Having them in the test file
    # itself is not feasible since a few popular plugins for vim will
    # remove trailing whitespace.
    for idx in (0, 1):
        diff[idx] += " "
    diff = "\n".join(diff)
    with patch.multiple(
        boto_cloudfront,
        __salt__={"boto_cloudfront.get_distribution": mock_get},
        __opts__={"test": True},
    ):
        header = "Distribution {} set for new config:".format(name)
        assert boto_cloudfront.present(name, config, tags) == base_ret_with(
            {
                "result": None,
                "comment": "\n".join([header, diff]),
                "changes": {"diff": diff},
            }
        )
    mock_update_failure = MagicMock(return_value={"error": "update error"})
    with patch.multiple(
        boto_cloudfront,
        __salt__={
            "boto_cloudfront.get_distribution": mock_get,
            "boto_cloudfront.update_distribution": mock_update_failure,
        },
        __opts__={"test": False},
    ):
        comment = "Error updating distribution {0}: update error"
        assert boto_cloudfront.present(name, config, tags) == base_ret_with(
            {"result": False, "comment": comment.format(name)}
        )
    mock_update_success = MagicMock(return_value={"result": True})
    with patch.multiple(
        boto_cloudfront,
        __salt__={
            "boto_cloudfront.get_distribution": mock_get,
            "boto_cloudfront.update_distribution": mock_update_success,
        },
        __opts__={"test": False},
    ):
        assert boto_cloudfront.present(name, config, tags) == base_ret_with(
            {
                "result": True,
                "comment": "Updated distribution {}.".format(name),
                "changes": {"diff": diff},
            }
        )