def test_retry_on_throughput_error(self, time):
        """Throughput exceptions trigger a retry of the request"""

        def call(*_, **__):
            """Dummy service call"""
            response = {
                "ResponseMetadata": {
                    "HTTPStatusCode": 400,
                },
                "Error": {
                    "Code": "ProvisionedThroughputExceededException",
                    "Message": "Does not matter",
                },
            }
            raise ClientError(response, "list_tables")

        with patch.object(self.dynamo, "client") as client:
            client.list_tables.side_effect = call
            with self.assertRaises(ThroughputException):
                self.dynamo.call("list_tables")
        self.assertEqual(len(time.sleep.mock_calls), self.dynamo.request_retries - 1)
        self.assertTrue(time.sleep.called)