|
366 | 366 | ------=_NextPart_000_0038_01D3F85C.02934C4A--
|
367 | 367 | """
|
368 | 368 |
|
| 369 | +raw_email_attachment_only = """Delivered-To: [email protected] |
| 370 | +X-Originating-Email: [[email protected]] |
| 371 | + |
| 372 | + |
| 373 | +Date: Tue, 30 Jul 2013 15:56:29 +0300 |
| 374 | +From: Martin Rusev <[email protected]> |
| 375 | +MIME-Version: 1.0 |
| 376 | + |
| 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 | + |
369 | 402 | class TestParser(unittest.TestCase):
|
370 | 403 |
|
371 | 404 | def test_parse_email(self):
|
@@ -423,6 +456,15 @@ def test_parse_attachment_with_long_filename(self):
|
423 | 456 | self.assertEqual(71, attachment['size'])
|
424 | 457 | self.assertEqual('abcefghijklmnopqrstuvwxyz01234567890abcefghijklmnopqrstuvwxyz01234567890abcefghijklmnopqrstuvwxyz01234567890.xyz', attachment['filename'])
|
425 | 458 | 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']) |
426 | 468 |
|
427 | 469 | def test_parse_email_accept_if_declared_charset_contains_a_minus_character(self):
|
428 | 470 | parsed_email = parse_email(raw_email_encoded_encoding_charset_contains_a_minus)
|
|
0 commit comments