1.1 --- a/tests/test_fetch.py Wed Oct 16 17:42:11 2013 +0200
1.2 +++ b/tests/test_fetch.py Wed Oct 16 18:03:02 2013 +0200
1.3 @@ -10,6 +10,25 @@
1.4 except ImportError:
1.5 from StringIO import StringIO
1.6
1.7 +def decrypt(message):
1.8 +
1.9 + "Decrypt 'message' if necessary."
1.10 +
1.11 + if is_encrypted(message):
1.12 + text = gpg.decryptMessage(message)
1.13 + return Parser().parse(StringIO(text))
1.14 + else:
1.15 + return message
1.16 +
1.17 +def verify(message):
1.18 +
1.19 + "Verify 'message' if possible."
1.20 +
1.21 + if is_signed(message):
1.22 + return gpg.verifyMessage(message)
1.23 + else:
1.24 + return None, None, message
1.25 +
1.26 if __name__ == "__main__":
1.27 try:
1.28 signer = sys.argv[1]
1.29 @@ -38,19 +57,25 @@
1.30 text = sendMessage(encrypted_message, url, "PUT")
1.31 mailbox = Parser().parse(StringIO(text))
1.32
1.33 - if is_encrypted(mailbox):
1.34 - text = gpg.decryptMessage(mailbox)
1.35 - mailbox = Parser().parse(StringIO(text))
1.36 + mailbox = decrypt(mailbox)
1.37 + fingerprint, identity, content = verify(mailbox)
1.38
1.39 - if is_signed(mailbox):
1.40 - fingerprint, identity, content = gpg.verifyMessage(mailbox)
1.41 + if fingerprint and identity:
1.42 print >>sys.stderr, "Messages signed by", fingerprint, identity
1.43 else:
1.44 - content = mailbox
1.45 print >>sys.stderr, "Message not signed!"
1.46
1.47 print >>sys.stderr
1.48 - print content
1.49 +
1.50 + if content.is_multipart():
1.51 + for part in content.get_payload():
1.52 + part = decrypt(part)
1.53 + fingerprint, identity, part = verify(part)
1.54 + if fingerprint and identity:
1.55 + print >>sys.stderr, "Part signed by", fingerprint, identity
1.56 + print part
1.57 + else:
1.58 + print content
1.59
1.60 except MoinMessageError, exc:
1.61 print >>sys.stderr, exc