@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()

        # Advance the clock by `sample_size` seconds to establish the
        # requested rate.
        c.pump(repeat(1, sample_size))

        cluster.get_control_service(c).fail_requests = True

        # Advance the clock by 2 seconds so that a request is dropped
        # and a new rate which is below the target can be established.
        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)
``read_request_load_scenario`` raises ``RequestRateTooLow`` if rate
dataset/ETHPy150Open ClusterHQ/flocker/benchmark/scenarios/test/test_write_request_load.py/write_request_load_scenarioTest.test_scenario_throws_exception_when_rate_drops