def METHOD_NAME(self, mocker, args, mocked_api_response, expected_cli_response):
    list_clusters_mock = mocker.patch(
        "pcluster.api.controllers.cluster_operations_controller.list_clusters",
        return_value=mocked_api_response,
        autospec=True,
    )
    out = run(["list-clusters"] + self._build_cli_args(args))
    assert_that(out).is_equal_to(expected_cli_response)
    assert_that(list_clusters_mock.call_args).is_length(2)  # this is due to the decorator on list_clusters
    if "cluster_status" in args:
        # Asserting the cluster_status list separately because the order is not preserved
        assert_that(list_clusters_mock.call_args[1].get("cluster_status")).contains_only(
            *args.get("cluster_status")
        )
        args["cluster_status"] = ANY
    base_args = {"region": None, "next_token": None, "cluster_status": None}
    list_clusters_mock.assert_called_with(**{**base_args, **args})