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": None})
    with patch.multiple(
        boto_cloudfront,
        __salt__={"boto_cloudfront.get_distribution": mock_get},
        __opts__={"test": True},
    ):
        comment = "Distribution {} set for creation.".format(name)
        assert boto_cloudfront.present(name, config, tags) == base_ret_with(
            {"result": None, "comment": comment, "changes": {"old": None, "new": name}}
        )
    mock_create_failure = MagicMock(return_value={"error": "create error"})
    with patch.multiple(
        boto_cloudfront,
        __salt__={
            "boto_cloudfront.get_distribution": mock_get,
            "boto_cloudfront.create_distribution": mock_create_failure,
        },
        __opts__={"test": False},
    ):
        comment = "Error creating distribution {0}: create error"
        assert boto_cloudfront.present(name, config, tags) == base_ret_with(
            {"result": False, "comment": comment.format(name)}
        )
    mock_create_success = MagicMock(return_value={"result": True})
    with patch.multiple(
        boto_cloudfront,
        __salt__={
            "boto_cloudfront.get_distribution": mock_get,
            "boto_cloudfront.create_distribution": mock_create_success,
        },
        __opts__={"test": False},
    ):
        comment = "Created distribution {0}."
        assert boto_cloudfront.present(name, config, tags) == base_ret_with(
            {
                "result": True,
                "comment": comment.format(name),
                "changes": {"old": None, "new": name},
            }
        )