Lines Matching refs:self
21 def get_key_as_get_content_key(self, order, key):
27 m = self._make_message()
30 self.assertEqual(cm.get_content(m, foo='bar'), ('bar', 'foo'))
32 def get_key_as_get_content_key_order(self, order, key):
39 for precedence, key in self.get_key_params.values():
42 m = self._make_message()
46 self.assertEqual(cm.get_content(m), ('foo'))
48 def test_get_content_raises_if_unknown_mimetype_and_no_default(self):
50 m = self._make_message()
52 with self.assertRaisesRegex(KeyError, 'text/plain'):
77 def set_key_as_set_content_key(self, order, key):
83 m = self._make_message()
84 msg_obj = self.Thing()
86 self.assertEqual(m['X-Foo-Header'], 'bar')
87 self.assertEqual(m.get_payload(), msg_obj)
89 def set_key_as_set_content_key_order(self, order, key):
97 for precedence, key in self.get_key_params.values():
100 m = self._make_message()
101 msg_obj = self.Thing()
103 self.assertEqual(m['X-FooBar-Header'], 'foo')
104 self.assertEqual(m.get_payload(), msg_obj)
106 def test_set_content_raises_if_unknown_type_and_no_default(self):
108 m = self._make_message()
109 msg_obj = self.Thing()
110 with self.assertRaisesRegex(KeyError, self.testobject_full_path):
113 def test_set_content_raises_if_called_on_multipart(self):
115 m = self._make_message()
117 with self.assertRaises(TypeError):
120 def test_set_content_calls_clear_content(self):
121 m = self._make_message()
129 self.assertIsNone(m['Content-Foo'])
130 self.assertIsNone(m['Content-Type'])
131 self.assertEqual(m['To'], 'test')
132 self.assertIsNone(m.get_payload())
148 def test_get_text_plain(self):
149 m = self._str_msg(textwrap.dedent("""\
154 self.assertEqual(raw_data_manager.get_content(m), "Basic text.\n")
156 def test_get_text_html(self):
157 m = self._str_msg(textwrap.dedent("""\
162 self.assertEqual(raw_data_manager.get_content(m),
165 def test_get_text_plain_latin1(self):
166 m = self._bytes_msg(textwrap.dedent("""\
171 self.assertEqual(raw_data_manager.get_content(m), "Basìc tëxt.\n")
173 def test_get_text_plain_latin1_quoted_printable(self):
174 m = self._str_msg(textwrap.dedent("""\
180 self.assertEqual(raw_data_manager.get_content(m), "Basìc tëxt.\n")
182 def test_get_text_plain_utf8_base64(self):
183 m = self._str_msg(textwrap.dedent("""\
189 self.assertEqual(raw_data_manager.get_content(m), "Basìc tëxt.\n")
191 def test_get_text_plain_bad_utf8_quoted_printable(self):
192 m = self._str_msg(textwrap.dedent("""\
198 self.assertEqual(raw_data_manager.get_content(m), "Basìc tëxt�.\n")
200 def test_get_text_plain_bad_utf8_quoted_printable_ignore_errors(self):
201 m = self._str_msg(textwrap.dedent("""\
207 self.assertEqual(raw_data_manager.get_content(m, errors='ignore'),
210 def test_get_text_plain_utf8_base64_recoverable_bad_CTE_data(self):
211 m = self._str_msg(textwrap.dedent("""\
217 self.assertEqual(raw_data_manager.get_content(m, errors='ignore'),
220 def test_get_text_invalid_keyword(self):
221 m = self._str_msg(textwrap.dedent("""\
226 with self.assertRaises(TypeError):
229 def test_get_non_text(self):
237 with self.subTest(maintype=maintype):
238 m = self._str_msg(template.format(maintype+'/foo'))
239 self.assertEqual(raw_data_manager.get_content(m), b"bogus data")
241 def test_get_non_text_invalid_keyword(self):
242 m = self._str_msg(textwrap.dedent("""\
248 with self.assertRaises(TypeError):
251 def test_get_raises_on_multipart(self):
252 m = self._str_msg(textwrap.dedent("""\
258 with self.assertRaises(KeyError):
261 def test_get_message_rfc822_and_external_body(self):
272 with self.subTest(subtype=subtype):
273 m = self._str_msg(template.format(subtype))
275 self.assertIsInstance(sub_msg, self.message)
276 self.assertEqual(raw_data_manager.get_content(sub_msg),
278 self.assertEqual(sub_msg['to'], 'foo@example.com')
279 self.assertEqual(sub_msg['from'].addresses[0].username, 'bar')
281 def test_get_message_non_rfc822_or_external_body_yields_bytes(self):
282 m = self._str_msg(textwrap.dedent("""\
291 self.assertEqual(raw_data_manager.get_content(m)[:10], b'To: foo@ex')
293 def test_set_text_plain(self):
294 m = self._make_message()
297 self.assertEqual(str(m), textwrap.dedent("""\
303 self.assertEqual(m.get_payload(decode=True).decode('utf-8'), content)
304 self.assertEqual(m.get_content(), content)
306 def test_set_text_plain_null(self):
307 m = self._make_message()
310 self.assertEqual(str(m), textwrap.dedent("""\
316 self.assertEqual(m.get_payload(decode=True).decode('utf-8'), '\n')
317 self.assertEqual(m.get_content(), '\n')
319 def test_set_text_html(self):
320 m = self._make_message()
323 self.assertEqual(str(m), textwrap.dedent("""\
329 self.assertEqual(m.get_payload(decode=True).decode('utf-8'), content)
330 self.assertEqual(m.get_content(), content)
332 def test_set_text_charset_latin_1(self):
333 m = self._make_message()
336 self.assertEqual(str(m), textwrap.dedent("""\
342 self.assertEqual(m.get_payload(decode=True).decode('utf-8'), content)
343 self.assertEqual(m.get_content(), content)
345 def test_set_text_plain_long_line_heuristics(self):
346 m = self._make_message()
350 self.assertEqual(str(m), textwrap.dedent("""\
357 self.assertEqual(m.get_payload(decode=True).decode('utf-8'), content)
358 self.assertEqual(m.get_content(), content)
360 def test_set_text_short_line_minimal_non_ascii_heuristics(self):
361 m = self._make_message()
364 self.assertEqual(bytes(m), textwrap.dedent("""\
370 self.assertEqual(m.get_payload(decode=True).decode('utf-8'), content)
371 self.assertEqual(m.get_content(), content)
373 def test_set_text_long_line_minimal_non_ascii_heuristics(self):
374 m = self._make_message()
379 self.assertEqual(bytes(m), textwrap.dedent("""\
387 self.assertEqual(m.get_payload(decode=True).decode('utf-8'), content)
388 self.assertEqual(m.get_content(), content)
390 def test_set_text_11_lines_long_line_minimal_non_ascii_heuristics(self):
391 m = self._make_message()
397 self.assertEqual(bytes(m), textwrap.dedent("""\
405 self.assertEqual(m.get_payload(decode=True).decode('utf-8'), content)
406 self.assertEqual(m.get_content(), content)
408 def test_set_text_maximal_non_ascii_heuristics(self):
409 m = self._make_message()
412 self.assertEqual(bytes(m), textwrap.dedent("""\
418 self.assertEqual(m.get_payload(decode=True).decode('utf-8'), content)
419 self.assertEqual(m.get_content(), content)
421 def test_set_text_11_lines_maximal_non_ascii_heuristics(self):
422 m = self._make_message()
425 self.assertEqual(bytes(m), textwrap.dedent("""\
431 self.assertEqual(m.get_payload(decode=True).decode('utf-8'), content)
432 self.assertEqual(m.get_content(), content)
434 def test_set_text_long_line_maximal_non_ascii_heuristics(self):
435 m = self._make_message()
440 self.assertEqual(bytes(m), textwrap.dedent("""\
450 self.assertEqual(m.get_payload(decode=True).decode('utf-8'), content)
451 self.assertEqual(m.get_content(), content)
453 def test_set_text_11_lines_long_line_maximal_non_ascii_heuristics(self):
456 m = self._make_message()
465 self.assertEqual(bytes(m), textwrap.dedent("""\
481 self.assertEqual(m.get_payload(decode=True).decode('utf-8'), content)
482 self.assertEqual(m.get_content(), content)
484 def test_set_text_non_ascii_with_cte_7bit_raises(self):
485 m = self._make_message()
486 with self.assertRaises(UnicodeError):
489 def test_set_text_non_ascii_with_charset_ascii_raises(self):
490 m = self._make_message()
491 with self.assertRaises(UnicodeError):
494 def test_set_text_non_ascii_with_cte_7bit_and_charset_ascii_raises(self):
495 m = self._make_message()
496 with self.assertRaises(UnicodeError):
499 def test_set_message(self):
500 m = self._make_message()
502 content = self._make_message()
508 self.assertEqual(str(m), textwrap.dedent("""\
523 self.assertIsInstance(payload, self.message)
524 self.assertEqual(str(payload), str(content))
525 self.assertIsInstance(m.get_content(), self.message)
526 self.assertEqual(str(m.get_content()), str(content))
528 def test_set_message_with_non_ascii_and_coercion_to_7bit(self):
529 m = self._make_message()
531 content = self._make_message()
538 self.assertEqual(bytes(m), textwrap.dedent("""\
557 self.assertEqual(m.as_string(maxheaderlen=self.policy.max_line_length),
573 self.assertIsInstance(m.get_content(), self.message)
574 self.assertEqual(str(m.get_content()), str(content))
576 def test_set_message_invalid_cte_raises(self):
577 m = self._make_message()
578 content = self._make_message()
581 with self.subTest(cte=cte, subtype=subtype):
582 with self.assertRaises(ValueError) as ar:
585 self.assertIn(cte, exc)
586 self.assertIn(subtype, exc)
589 with self.subTest(cte=cte, subtype=subtype):
590 with self.assertRaises(ValueError) as ar:
593 self.assertIn(cte, exc)
594 self.assertIn(subtype, exc)
596 def test_set_image_jpg(self):
600 with self.subTest(content=content):
601 m = self._make_message()
603 self.assertEqual(str(m), textwrap.dedent("""\
609 self.assertEqual(m.get_payload(decode=True), content)
610 self.assertEqual(m.get_content(), content)
612 def test_set_audio_aif_with_quoted_printable_cte(self):
621 m = self._make_message()
624 self.assertEqual(bytes(m), textwrap.dedent("""\
631 self.assertEqual(m.get_payload(decode=True), content)
632 self.assertEqual(m.get_content(), content)
634 def test_set_video_mpeg_with_binary_cte(self):
635 m = self._make_message()
638 self.assertEqual(bytes(m), textwrap.dedent("""\
648 self.assertEqual(m.get_payload(decode=True), content)
649 self.assertEqual(m.get_content(), content)
651 def test_set_application_octet_stream_with_8bit_cte(self):
654 m = self._make_message()
657 self.assertEqual(bytes(m), textwrap.dedent("""\
665 self.assertEqual(m.get_payload(decode=True), content)
666 self.assertEqual(m.get_content(), content)
668 def test_set_headers_from_header_objects(self):
669 m = self._make_message()
671 header_factory = self.policy.header_factory
676 self.assertEqual(str(m), textwrap.dedent("""\
686 def test_set_headers_from_strings(self):
687 m = self._make_message()
692 self.assertEqual(str(m), textwrap.dedent("""\
701 def test_set_headers_with_invalid_duplicate_string_header_raises(self):
702 m = self._make_message()
704 with self.assertRaisesRegex(ValueError, 'Content-Type'):
709 def test_set_headers_with_invalid_duplicate_header_header_raises(self):
710 m = self._make_message()
712 header_factory = self.policy.header_factory
713 with self.assertRaisesRegex(ValueError, 'Content-Type'):
718 def test_set_headers_with_defective_string_header_raises(self):
719 m = self._make_message()
721 with self.assertRaisesRegex(ValueError, 'a@fairly@@invalid@address'):
727 def test_set_headers_with_defective_header_header_raises(self):
728 m = self._make_message()
730 header_factory = self.policy.header_factory
731 with self.assertRaisesRegex(ValueError, 'a@fairly@@invalid@address'):
737 def test_set_disposition_inline(self):
738 m = self._make_message()
740 self.assertEqual(m['Content-Disposition'], 'inline')
742 def test_set_disposition_attachment(self):
743 m = self._make_message()
745 self.assertEqual(m['Content-Disposition'], 'attachment')
747 def test_set_disposition_foo(self):
748 m = self._make_message()
750 self.assertEqual(m['Content-Disposition'], 'foo')
755 def test_set_filename(self):
756 m = self._make_message()
758 self.assertEqual(m['Content-Disposition'],
761 def test_set_filename_and_disposition_inline(self):
762 m = self._make_message()
764 self.assertEqual(m['Content-Disposition'], 'inline; filename="bar.txt"')
766 def test_set_non_ascii_filename(self):
767 m = self._make_message()
769 self.assertEqual(bytes(m), textwrap.dedent("""\
779 def test_set_content_bytes_cte_7bit(self):
780 m = self._make_message()
783 self.assertEqual(str(m), textwrap.dedent("""\
801 def content_object_as_header_receiver(self, obj, mimetype):
802 m = self._make_message()
806 self.assertEqual(m['to'], 'foo@example.com')
807 self.assertEqual(m['from'], 'bar@simple.net')
809 def content_object_as_disposition_inline_receiver(self, obj, mimetype):
810 m = self._make_message()
812 self.assertEqual(m['Content-Disposition'], 'inline')
814 def content_object_as_non_ascii_filename_receiver(self, obj, mimetype):
815 m = self._make_message()
817 self.assertEqual(m['Content-Disposition'], 'inline; filename="bár.txt"')
818 self.assertEqual(m.get_filename(), "bár.txt")
819 self.assertEqual(m['Content-Disposition'].params['filename'], "bár.txt")
821 def content_object_as_cid_receiver(self, obj, mimetype):
822 m = self._make_message()
824 self.assertEqual(m['Content-ID'], 'some_random_stuff')
826 def content_object_as_params_receiver(self, obj, mimetype):
827 m = self._make_message()
832 self.assertEqual(m['Content-Type'].params, params)