def METHOD_NAME(self, mocker, fb_api, params, min_rate, usage, expect_sleep):
    pause_interval = 1
    mock_response = mocker.Mock()
    mocker.patch.object(fb_api, "MIN_RATE", min_rate)
    mocker.patch.object(fb_api, "_get_max_usage_pause_interval_from_batch", mocker.Mock(return_value=(usage, pause_interval)))
    mocker.patch.object(fb_api, "_parse_call_rate_header", mocker.Mock(return_value=(usage, pause_interval)))
    mocker.patch.object(fb_api, "_compute_pause_interval")
    mocker.patch.object(source_facebook_marketing.api, "logger")
    mocker.patch.object(source_facebook_marketing.api, "sleep")
    assert fb_api._handle_call_rate_limit(mock_response, params) is None
    if "batch" in params:
        fb_api._get_max_usage_pause_interval_from_batch.assert_called_with(mock_response.json.return_value)
    else:
        fb_api._parse_call_rate_header.assert_called_with(mock_response.headers.return_value)
    if expect_sleep:
        fb_api._compute_pause_interval.assert_called_with(usage=usage, pause_interval=pause_interval)
        source_facebook_marketing.api.sleep.assert_called_with(fb_api._compute_pause_interval.return_value.total_seconds())
        source_facebook_marketing.api.logger.warning.assert_called_with(
            f"Utilization is too high ({usage})%, pausing for {fb_api._compute_pause_interval.return_value}"
        )