'``read_request_load_scenario`` raises ``RequestRateTooLow`` if rate
drops below the requested rate.
Establish the requested rate by having the ``FakeFlockerClient``
respond to all requests, then lower the rate by dropping
alternate requests. This should result in ``RequestRateTooLow``
being raised.'

@capture_logging(None)
def test_scenario_throws_exception_when_rate_drops(self, _logger):

    c = Clock()
    cluster = self.make_cluster(self.get_error_response_client_instance(c))
    sample_size = 5
    cluster.get_control_service(c).delay = 0
    s = write_request_load_scenario(c, cluster, sample_size=sample_size, tolerance_percentage=0.0)
    s.start()
    c.pump(repeat(1, sample_size))
    cluster.get_control_service(c).fail_requests = True
    time_to_advance = (s.tolerated_errors / sample_size)
    c.pump(repeat(1, time_to_advance))
    failure = self.failureResultOf(s.maintained())
    _logger.flushTracebacks(FakeNetworkError)
    self.assertIsInstance(failure.value, RequestRateTooLow)
