INCOMPLETE(!) Attempt to replace the rfc822 module with the email module. diff -r 2c3cc4ccd024 test/test_mailgw.py --- a/test/test_mailgw.py Mon Feb 16 17:43:58 2015 +0100 +++ b/test/test_mailgw.py Wed Feb 25 23:50:13 2015 +0100 @@ -11,9 +11,9 @@ # TODO: test bcc -import unittest, tempfile, os, shutil, errno, imp, sys, difflib, rfc822, time +import email.parser +import unittest, tempfile, os, shutil, errno, imp, sys, difflib, time import gpgmelib -from email.parser import FeedParser try: @@ -43,15 +43,6 @@ """ return lambda x: 0 -class Message(rfc822.Message): - """String-based Message class with equivalence test.""" - def __init__(self, s): - rfc822.Message.__init__(self, StringIO(s.strip())) - - def __eq__(self, other): - return (self.dict == other.dict and - self.fp.read() == other.fp.read()) - class Tracker(object): def open(self, journaltag): return self.db @@ -59,7 +50,8 @@ class DiffHelper: def compareMessages(self, new, old): """Compare messages for semantic equivalence.""" - new, old = Message(new), Message(old) + new = email.parser.Parser().parsestr(new.strip()) + old = email.parser.Parser().parsestr(old.strip()) # all Roundup-generated messages have "Precedence: bulk" old['Precedence'] = 'bulk' @@ -3504,7 +3496,7 @@ # trap_exc=1: we want a bounce message: self._handle_mail(self.encrypted_msg, trap_exc=1) m = self._get_mail() - fp = FeedParser() + fp = email.parser.FeedParser() fp.feed(m) parts = fp.close().get_payload() self.assertEqual(len(parts),2) @@ -3515,7 +3507,7 @@ res = ctx.op_decrypt(crypt, plain) self.assertEqual(res, None) plain.seek(0,0) - fp = FeedParser() + fp = email.parser.FeedParser() fp.feed(plain.read()) parts = fp.close().get_payload() self.assertEqual(len(parts),2)