def test_failed_submit_raises_retry(self, cache_pdf, html_to_pdf, post_submission, retry): cache_pdf.return_value = SignedUrl( 'pdf', 'https://s3.amazonaws.com/bucket/pdf') html_to_pdf.return_value.__enter__.return_value = self.file_handle post_submission.side_effect = RequestException retry.return_value = Retry() with self.assertRaises(Retry): submit_comment(self.comments, self.form, self.meta) self.assertFalse(FailedCommentSubmission.objects.all(), "No submissions saved")
def test_error_fetching_from_s3_saves(self, cached_pdf, html_to_pdf, post_submission, retry): self.comments[1]['files'].append( {"name": "file_name.png", "key": "someKey"}) retry.return_value = MaxRetriesExceededError() with mock.patch('regulations.tasks.boto3') as boto3: client = boto3.Session.return_value.client.return_value client.download_file.side_effect = botocore.exceptions.ClientError submit_comment(self.comments, self.form, self.meta) saved_submission = FailedCommentSubmission.objects.all()[0] self.assertEqual( json.dumps({ 'comments': self.comments, 'form_data': self.form, }), saved_submission.body, )
def test_failed_submit_maximum_retries(self, cache_pdf, html_to_pdf, post_submission, retry): cache_pdf.return_value = SignedUrl( 'pdf', 'https://s3.amazonaws.com/bucket/pdf') html_to_pdf.return_value.__enter__.return_value = self.file_handle post_submission.side_effect = RequestException retry.return_value = MaxRetriesExceededError() submit_comment(self.comments, self.form, self.meta) saved_submission = FailedCommentSubmission.objects.all()[0] self.assertEqual( json.dumps({ 'comments': self.comments, 'form_data': self.form, }), saved_submission.body, )
def test_submit_comment(self, cache_pdf, html_to_pdf, post_submission, retry): cache_pdf.return_value = SignedUrl( 'pdf', 'https://s3.amazonaws.com/bucket/pdf') html_to_pdf.return_value.__enter__.return_value = self.file_handle expected_result = {'trackingNumber': 'some-tracking-number'} post_submission.return_value.status_code = 201 post_submission.return_value.json.return_value = expected_result result = submit_comment(self.comments, self.form, self.meta) self.assertEqual( result, { 'trackingNumber': 'some-tracking-number', 'pdfUrl': cache_pdf.return_value.url }, ) self.assertFalse(FailedCommentSubmission.objects.all(), "No submissions saved")