diff --git a/tests/text_quotations_test.py b/tests/text_quotations_test.py index bfefb3a..aed2ce8 100644 --- a/tests/text_quotations_test.py +++ b/tests/text_quotations_test.py @@ -10,6 +10,7 @@ import email.iterators from talon import quotations import six from six.moves import range +from six import StringIO @patch.object(quotations, 'MAX_LINES_COUNT', 1) @@ -665,6 +666,15 @@ def test_preprocess_postprocess_2_links(): eq_(msg_body, quotations.extract_from_plain(msg_body)) +def body_iterator(msg, decode=False): + for subpart in msg.walk(): + payload = subpart.get_payload(decode=decode) + if isinstance(payload, six.text_type): + yield payload + else: + yield payload.decode('utf8') + + def test_standard_replies(): for filename in os.listdir(STANDARD_REPLIES): filename = os.path.join(STANDARD_REPLIES, filename) @@ -673,7 +683,7 @@ def test_standard_replies(): with open(filename) as f: message = email.message_from_file(f) body = next(email.iterators.typed_subpart_iterator(message, subtype='plain')) - text = ''.join(email.iterators.body_line_iterator(body, True)) + text = ''.join(body_iterator(body, True)) stripped_text = quotations.extract_from_plain(text) reply_text_fn = filename[:-4] + '_reply_text'