Ejemplo n.º 1
0
 def test_cache_pdf(self, s3_client, url_generate):
     meta = SignedUrl('meta', 'https://s3.amazonaws.com/bucket/meta')
     url_generate.return_value = SignedUrl(
         'pdf', 'https://s3.amazonaws.com/bucket/pdf')
     url = cache_pdf('content', "1234_56", meta)
     assert_equal(url, url_generate.return_value)
     s3_client.put_object.assert_any_call(
         Body=json.dumps({'pdfUrl': meta.url}),
         Bucket=settings.ATTACHMENT_BUCKET,
         Key=meta.key,
     )
     s3_client.put_object.assert_any_call(
         Body='content',
         Bucket=settings.ATTACHMENT_BUCKET,
         ContentType='application/pdf',
         ContentDisposition='attachment; filename="comment_1234_56.pdf"',
         Key=url.key,
     )
Ejemplo n.º 2
0
 def setUp(self):
     self.file_handle = six.BytesIO(b"some-byte-content")
     self.comments = [
         {"id": "A1", "comment": "A simple comment", "docId": "1234_56",
          "files": []},
         {"id": "A5", "comment": "Another comment", "docId": "1234_56",
          "files": []}
     ]
     self.form = {}
     self.meta = SignedUrl('meta', 'https://s3.amazonaws.com/bucket/meta')
Ejemplo n.º 3
0
    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")
Ejemplo n.º 4
0
    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,
        )
Ejemplo n.º 5
0
    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")