Image imports and consumption by mail work

This commit is contained in:
Daniel Quinn
2016-02-06 17:05:36 +00:00
parent 71075a691a
commit 48761911b3
8 changed files with 343 additions and 286 deletions

View File

@@ -1,3 +1,4 @@
import base64
import os
import magic
@@ -6,10 +7,10 @@ from hashlib import md5
from django.conf import settings
from django.test import TestCase
from ...consumers.mail import MailConsumer
from ...mail import Message, Attachment
class TestMailConsumer(TestCase):
class TestMessage(TestCase):
def __init__(self, *args, **kwargs):
@@ -23,21 +24,33 @@ class TestMailConsumer(TestCase):
"mail.txt"
)
def test_parse(self):
consumer = MailConsumer()
with open(self.sample) as f:
def test_init(self):
messages = consumer._parse_message(f.read())
with open(self.sample, "rb") as f:
self.assertTrue(len(messages), 1)
self.assertEqual(messages[0]["subject"], "Test 0")
message = Message(f.read())
attachment = messages[0]["attachment"]
data = attachment.read()
self.assertTrue(message)
self.assertEqual(message.subject, "Test 0")
data = message.attachment.read()
self.assertEqual(
md5(data).hexdigest(), "7c89655f9e9eb7dd8cde8568e8115d59")
self.assertEqual(attachment.content_type, "application/pdf")
self.assertEqual(
message.attachment.content_type, "application/pdf")
with magic.Magic(flags=magic.MAGIC_MIME_TYPE) as m:
self.assertEqual(m.id_buffer(data), "application/pdf")
class TestAttachment(TestCase):
def test_init(self):
data = base64.encodebytes(b"0")
self.assertEqual(Attachment(data, "application/pdf").suffix, "pdf")
self.assertEqual(Attachment(data, "image/png").suffix, "png")
self.assertEqual(Attachment(data, "image/jpeg").suffix, "jpeg")
self.assertEqual(Attachment(data, "image/gif").suffix, "gif")
self.assertEqual(Attachment(data, "image/tiff").suffix, "tiff")
self.assertEqual(Attachment(data, "image/png").read(), data)

View File

@@ -1 +1 @@
from .consumers.mail import TestMailConsumer
from .consumers.mail import TestMailFetcher