def test_toomanyinvalidation_errors_cause_retry(self, MockClient): error = CloudFrontServerError(400, 'Bad Request') error.error_code = 'TooManyInvalidationsInProgress' cloudfront = Mock() cloudfront.create_invalidation_request.side_effect = error config = Client().config() client = Mock() client.config.return_value = config client.get_cloudfront.return_value = cloudfront MockClient.return_value = client session = Client().session() transaction_id = TaskTransaction.new_id() image = Image(filename='abad1dea') image.created_at = '2001-01-01 00:00:00' session.add(image) session.flush() invalidate = NeverCalledDirectlyInvalidate() invalidate.retry = Mock() invalidate(transaction_id, image.image_id) invalidate.retry.assert_called_with(exc=error)
def test_unknown_cloudfront_errors_reraise(self, MockClient): error = CloudFrontServerError(400, 'Bad Request') error.error_code = 'CloudFrontHatesYouToday' cloudfront = Mock() cloudfront.create_invalidation_request.side_effect = error config = Client().config() client = Mock() client.config.return_value = config client.get_cloudfront.return_value = cloudfront MockClient.return_value = client transaction_id = TaskTransaction.new_id() session = Client().session() image = Image(filename='abad1dea') image.created_at = '2001-01-01 00:00:00' session.add(image) session.flush() Invalidate()(transaction_id, image.image_id)