def test_format_inline_images_without_content_type(self): self.givenTestImage(content_type='') input_email = {'body': '<div><img src="http://test-url.png"/></div>'} output_email = email_parser.format_inline_images( input_email, self.fail_if_called) self.assertStartsWith(output_email['body'], '<div><img src="data:image/png;')
def test_format_inline_images_with_many_img_tags(self): self.givenTestImage() input_email = { 'body': '<div><img src="http://test-url.png"/><img src="http://test-url.png"/></div>' } output_email = email_parser.format_inline_images(input_email) self.assertHasCount(output_email['body'], 'src="data:', 2)
def test_format_inline_images_with_img_tag(self): self.givenTestImage() input_email = { 'body': '<div><h3>test image</h3><img src="http://test-url.png"/></div>' } output_email = email_parser.format_inline_images(input_email) self.assertStartsWith( output_email['body'], '<div><h3>test image</h3><img src="data:image/png;')
def test_handles_exceptions_when_processing_image(self, mock_pil): mock_pil.open.side_effect = throw(IOError()) handled_errors = [] def on_error(*args): handled_errors.append(args) self.givenTestImage() input_email = {'body': '<div><h3>test image</h3><img src="http://test-url.png"/></div>'} output_email = email_parser.format_inline_images(input_email, on_error) self.assertEqual(len(handled_errors), 1) self.assertEqual(output_email, input_email)
def __call__(self, resource_id: str): mime_email = email_receive.STORAGE.fetch_text(resource_id) email = parse_mime_email(mime_email) email = format_attachments(email) email = format_inline_images(email) server_datastore.store_email(resource_id, email) email_receive.STORAGE.delete(resource_id) self.log_event( events.EMAIL_STORED_FOR_CLIENT, {'domain': get_domain(email.get('from', ''))}) # noqa: E501 return 'OK', 200
def test_format_inline_images_without_img_tags(self): input_email = {'body': '<div></div>'} output_email = email_parser.format_inline_images(input_email, self.fail_if_called) self.assertEqual(output_email, input_email)
def test_format_inline_images_with_img_tag_and_invalid_src_attribute(self): input_email = {'body': '<div><img src="foo:invalid"/></div>'} output_email = email_parser.format_inline_images(input_email, self.fail_if_called) self.assertEqual(output_email, input_email)
def test_format_inline_images_with_img_tag_without_src_attribute(self): input_email = {'body': '<div><img/></div>'} output_email = email_parser.format_inline_images(input_email) self.assertEqual(output_email, input_email)
def _parse_mime_email(cls, mime_email: str) -> dict: email = parse_mime_email(mime_email) email = format_attachments(email) email = format_inline_images(email) return email