Skip to content

Commit ff9a340

Browse files
author
Anton Engelhardt
committed
Added test
For attachment only email with base64 encoded filename
1 parent e3dfa93 commit ff9a340

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

tests/parser_tests.py

+42
Original file line numberDiff line numberDiff line change
@@ -366,6 +366,39 @@
366366
------=_NextPart_000_0038_01D3F85C.02934C4A--
367367
"""
368368

369+
raw_email_attachment_only = """Delivered-To: [email protected]
370+
X-Originating-Email: [[email protected]]
371+
Message-ID: <[email protected]>
372+
Return-Path: [email protected]
373+
Date: Tue, 30 Jul 2013 15:56:29 +0300
374+
From: Martin Rusev <[email protected]>
375+
MIME-Version: 1.0
376+
To: John Doe <[email protected]>
377+
Subject: Test email - only pdf in body
378+
Content-Type: application/pdf;
379+
name="=?utf-8?B?YV9sb25nX2ZpbGVuYW1lX3dpdGhfc3BlY2lhbF9jaGFyX8O2w6Rf?=
380+
=?utf-8?B?LTAxX28ucGRm?="
381+
Content-Transfer-Encoding: base64
382+
Content-Disposition: attachment;
383+
filename="=?utf-8?B?YV9sb25nX2ZpbGVuYW1lX3dpdGhfc3BlY2lhbF9jaGFyX8O2w6Rf?=
384+
=?utf-8?B?LTAxX28ucGRm?="
385+
386+
JVBERi0xLjQKJcOiw6PDj8OTCjUgMCBvYmoKPDwKL0xlbmd0aCAxCj4+CnN0cmVhbQogCmVuZHN0
387+
cmVhbQplbmRvYmoKNCAwIG9iago8PAovVHlwZSAvUGFnZQovTWVkaWFCb3ggWzAgMCA2MTIgNzky
388+
XQovUmVzb3VyY2VzIDw8Cj4+Ci9Db250ZW50cyA1IDAgUgovUGFyZW50IDIgMCBSCj4+CmVuZG9i
389+
agoyIDAgb2JqCjw8Ci9UeXBlIC9QYWdlcwovS2lkcyBbNCAwIFJdCi9Db3VudCAxCj4+CmVuZG9i
390+
agoxIDAgb2JqCjw8Ci9UeXBlIC9DYXRhbG9nCi9QYWdlcyAyIDAgUgo+PgplbmRvYmoKMyAwIG9i
391+
ago8PAovQ3JlYXRvciAoUERGIENyZWF0b3IgaHR0cDovL3d3dy5wZGYtdG9vbHMuY29tKQovQ3Jl
392+
YXRpb25EYXRlIChEOjIwMTUwNzAxMTEyNDQ3KzAyJzAwJykKL01vZERhdGUgKEQ6MjAyMjA2MDcx
393+
ODM2MDIrMDInMDAnKQovUHJvZHVjZXIgKDMtSGVpZ2h0c1wyMjIgUERGIE9wdGltaXphdGlvbiBT
394+
aGVsbCA2LjAuMC4wIFwoaHR0cDovL3d3dy5wZGYtdG9vbHMuY29tXCkpCj4+CmVuZG9iagp4cmVm
395+
CjAgNgowMDAwMDAwMDAwIDY1NTM1IGYKMDAwMDAwMDIyNiAwMDAwMCBuCjAwMDAwMDAxNjkgMDAw
396+
MDAgbgowMDAwMDAwMjc1IDAwMDAwIG4KMDAwMDAwMDA2NSAwMDAwMCBuCjAwMDAwMDAwMTUgMDAw
397+
MDAgbgp0cmFpbGVyCjw8Ci9TaXplIDYKL1Jvb3QgMSAwIFIKL0luZm8gMyAwIFIKL0lEIFs8MUMz
398+
NTAwQ0E5RjcyMzJCOTdFMEVGM0Y3ODlFOEI3RjI+IDwyNTRDOEQxNTNGNjU1RDQ5OTQ1RUFENjhE
399+
ODAxRTAxMT5dCj4+CnN0YXJ0eHJlZgo1MDUKJSVFT0Y=
400+
"""
401+
369402
class TestParser(unittest.TestCase):
370403

371404
def test_parse_email(self):
@@ -423,6 +456,15 @@ def test_parse_attachment_with_long_filename(self):
423456
self.assertEqual(71, attachment['size'])
424457
self.assertEqual('abcefghijklmnopqrstuvwxyz01234567890abcefghijklmnopqrstuvwxyz01234567890abcefghijklmnopqrstuvwxyz01234567890.xyz', attachment['filename'])
425458
self.assertTrue(attachment['content'])
459+
460+
def test_parse_email_single_attachment(self):
461+
parsed_email = parse_email(raw_email_attachment_only)
462+
self.assertEqual(1, len(parsed_email.attachments))
463+
attachment = parsed_email.attachments[0]
464+
self.assertEqual('application/pdf', attachment['content-type'])
465+
self.assertEqual(773, attachment['size'])
466+
self.assertEqual('a_long_filename_with_special_char_öä_-01_o.pdf', attachment['filename'])
467+
self.assertTrue(attachment['content'])
426468

427469
def test_parse_email_accept_if_declared_charset_contains_a_minus_character(self):
428470
parsed_email = parse_email(raw_email_encoded_encoding_charset_contains_a_minus)

0 commit comments

Comments
 (0)