aboutsummaryrefslogtreecommitdiff
path: root/src/mailman_pgp/pgp/tests/base.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/mailman_pgp/pgp/tests/base.py')
-rw-r--r--src/mailman_pgp/pgp/tests/base.py25
1 files changed, 24 insertions, 1 deletions
diff --git a/src/mailman_pgp/pgp/tests/base.py b/src/mailman_pgp/pgp/tests/base.py
index 47d333c..e16c95e 100644
--- a/src/mailman_pgp/pgp/tests/base.py
+++ b/src/mailman_pgp/pgp/tests/base.py
@@ -41,9 +41,24 @@ def load_key(path):
return key
+def payload_equal(one_msg, other_msg):
+ one_payload = one_msg.get_payload()
+ other_payload = other_msg.get_payload()
+ if isinstance(one_payload, list) and isinstance(other_payload, list):
+ if len(one_payload) != len(other_payload):
+ return False
+ for one_inner, other_inner in zip(one_payload, other_payload):
+ if not payload_equal(one_inner, other_inner):
+ return False
+ return True
+ else:
+ return one_payload == other_payload
+
+
class WrapperTestCase(TestCase):
layer = PGPLayer
wrapper = None
+ maxDiff = None
def wrap(self, message):
return self.wrapper(message)
@@ -52,6 +67,10 @@ class WrapperTestCase(TestCase):
wrapped = self.wrap(message)
self.assertEqual(wrapped.is_signed(), signed)
+ def has_signature(self, message, has):
+ wrapped = self.wrap(message)
+ self.assertEqual(wrapped.has_signature(), has)
+
def sign(self, message, key):
wrapped = self.wrap(message)
signed = wrapped.sign(key)
@@ -74,6 +93,10 @@ class WrapperTestCase(TestCase):
wrapped = self.wrap(message)
self.assertEqual(wrapped.is_encrypted(), encrypted)
+ def has_encryption(self, message, has):
+ wrapped = self.wrap(message)
+ self.assertEqual(wrapped.has_encryption(), has)
+
def encrypt(self, message, *keys, **kwargs):
wrapped = self.wrap(message)
encrypted = wrapped.encrypt(*keys, **kwargs)
@@ -89,7 +112,7 @@ class WrapperTestCase(TestCase):
decrypted_wrapped = self.wrap(decrypted)
self.assertFalse(decrypted_wrapped.is_encrypted())
- self.assertEqual(decrypted.get_payload(), message.get_payload())
+ self.assertTrue(payload_equal(decrypted, message))
def decrypt(self, message, key, clear):
wrapped = self.wrap(message)