summaryrefslogtreecommitdiff
path: root/src/mailman_pgp/commands/tests/test_key.py
diff options
context:
space:
mode:
authorJ08nY2017-07-11 22:07:06 +0200
committerJ08nY2017-07-11 22:07:06 +0200
commit4bab3532e38f6fd4826e0af2f96b6060286e3ed7 (patch)
treecbe5a91ccb572edf23b18391eefaefef753a3db4 /src/mailman_pgp/commands/tests/test_key.py
parentbeff82c480fa4f9acaede60a5f789e880721cc81 (diff)
downloadmailman-pgp-4bab3532e38f6fd4826e0af2f96b6060286e3ed7.tar.gz
mailman-pgp-4bab3532e38f6fd4826e0af2f96b6060286e3ed7.tar.zst
mailman-pgp-4bab3532e38f6fd4826e0af2f96b6060286e3ed7.zip
Diffstat (limited to 'src/mailman_pgp/commands/tests/test_key.py')
-rw-r--r--src/mailman_pgp/commands/tests/test_key.py153
1 files changed, 153 insertions, 0 deletions
diff --git a/src/mailman_pgp/commands/tests/test_key.py b/src/mailman_pgp/commands/tests/test_key.py
index 95f9766..b3d8c95 100644
--- a/src/mailman_pgp/commands/tests/test_key.py
+++ b/src/mailman_pgp/commands/tests/test_key.py
@@ -40,6 +40,59 @@ from mailman_pgp.workflows.base import CONFIRM_REQUEST
from mailman_pgp.workflows.subscription import OpenSubscriptionPolicy
+class TestPreDispatch(unittest.TestCase):
+ layer = PGPConfigLayer
+
+ def setUp(self):
+ self.mlist = create_list('test@example.com')
+
+ def test_no_arguments(self):
+ message = Message()
+ message['From'] = 'bart@example.com'
+ message['To'] = 'test@example.com'
+ message['Subject'] = 'key'
+ message.set_payload('')
+
+ mm_config.switchboards['command'].enqueue(message,
+ listid='test.example.com')
+ make_testable_runner(CommandRunner, 'command').run()
+ items = get_queue_messages('virgin', expected_count=1)
+ results_msg = items[0].msg
+
+ self.assertIn('No sub-command specified', results_msg.get_payload())
+
+ def test_wrong_subcommand(self):
+ message = Message()
+ message['From'] = 'bart@example.com'
+ message['To'] = 'test@example.com'
+ message['Subject'] = 'key wroooooong'
+ message.set_payload('')
+
+ mm_config.switchboards['command'].enqueue(message,
+ listid='test.example.com')
+ make_testable_runner(CommandRunner, 'command').run()
+ items = get_queue_messages('virgin', expected_count=1)
+ results_msg = items[0].msg
+
+ self.assertIn('Wrong sub-command specified', results_msg.get_payload())
+
+ def test_no_pgp_list(self):
+ message = Message()
+ message['From'] = 'bart@example.com'
+ message['To'] = 'test@example.com'
+ message['Subject'] = 'key set'
+ message.set_payload('')
+
+ mm_config.switchboards['command'].enqueue(message,
+ listid='test.example.com')
+ make_testable_runner(CommandRunner, 'command').run()
+ items = get_queue_messages('virgin', expected_count=1)
+ results_msg = items[0].msg
+
+ self.assertIn("This mailing list doesn't have pgp enabled.",
+ results_msg.get_payload())
+
+
class TestPreSubscription(unittest.TestCase):
layer = PGPConfigLayer
@@ -87,6 +140,60 @@ class TestPreSubscription(unittest.TestCase):
confirm_wrapped = PGPWrapper(confirm_request)
self.assertTrue(confirm_wrapped.is_encrypted())
+ def test_set_no_token(self):
+ message = Message()
+ message['From'] = 'bart@example.com'
+ message['To'] = 'test@example.com'
+ message['Subject'] = 'key set'
+ message.set_payload('')
+
+ mm_config.switchboards['command'].enqueue(message,
+ listid='test.example.com')
+ make_testable_runner(CommandRunner, 'command').run()
+ items = get_queue_messages('virgin', expected_count=1)
+ results_msg = items[0].msg
+
+ self.assertIn('Missing token.', results_msg.get_payload())
+
+ def test_set_no_key(self):
+ message = Message()
+ message['From'] = 'bart@example.com'
+ message['To'] = 'test@example.com'
+ message['Subject'] = 'key set token'
+ message.set_payload('')
+
+ mm_config.switchboards['command'].enqueue(message,
+ listid='test.example.com')
+ make_testable_runner(CommandRunner, 'command').run()
+ items = get_queue_messages('virgin', expected_count=1)
+ results_msg = items[0].msg
+
+ self.assertIn('No keys attached? Send a key.',
+ results_msg.get_payload())
+
+ def test_set_multiple_keys(self):
+ bart_key = load_key('rsa_1024.priv.asc')
+ anne_key = load_key('ecc_p256.priv.asc')
+
+ set_message = Message()
+ set_message['From'] = 'bart@example.com'
+ set_message['To'] = 'test@example.com'
+ set_message['Subject'] = 'Re: key set token'
+ set_message.set_type('multipart/mixed')
+ wrapped_set_message = MIMEWrapper(set_message)
+ set_message = wrapped_set_message.attach_key(bart_key.pubkey)
+ wrapped_set_message = MIMEWrapper(set_message)
+ set_message = wrapped_set_message.attach_key(anne_key.pubkey)
+
+ mm_config.switchboards['command'].enqueue(set_message,
+ listid='test.example.com')
+ make_testable_runner(CommandRunner, 'command').run()
+ items = get_queue_messages('virgin', expected_count=1)
+ results_msg = items[0].msg
+
+ self.assertIn('More than one key! Send only one key.',
+ results_msg.get_payload())
+
def test_confirm(self):
self.mlist.subscription_policy = OpenSubscriptionPolicy
bart = getUtility(IUserManager).create_address('bart@example.com',
@@ -121,3 +228,49 @@ class TestPreSubscription(unittest.TestCase):
pgp_address = PGPAddress.for_address(bart)
self.assertTrue(pgp_address.key_confirmed)
self.assertTrue(self.mlist.is_subscribed(bart))
+
+ def test_confirm_no_token(self):
+ message = Message()
+ message['From'] = 'bart@example.com'
+ message['To'] = 'test@example.com'
+ message['Subject'] = 'key confirm'
+ message.set_payload('')
+
+ mm_config.switchboards['command'].enqueue(message,
+ listid='test.example.com')
+ make_testable_runner(CommandRunner, 'command').run()
+ items = get_queue_messages('virgin', expected_count=1)
+ results_msg = items[0].msg
+
+ self.assertIn('Missing token.', results_msg.get_payload())
+
+ def test_confirm_no_email(self):
+ message = Message()
+ message['From'] = ''
+ message['To'] = 'test@example.com'
+ message['Subject'] = 'key confirm token'
+ message.set_payload('')
+
+ mm_config.switchboards['command'].enqueue(message,
+ listid='test.example.com')
+ make_testable_runner(CommandRunner, 'command').run()
+ items = get_queue_messages('virgin', expected_count=1)
+ results_msg = items[0].msg
+
+ self.assertIn('No email to subscribe with.', results_msg.get_payload())
+
+ def test_confirm_no_pgp_address(self):
+ message = Message()
+ message['From'] = 'bart@example.com'
+ message['To'] = 'test@example.com'
+ message['Subject'] = 'key confirm token'
+ message.set_payload('')
+
+ mm_config.switchboards['command'].enqueue(message,
+ listid='test.example.com')
+ make_testable_runner(CommandRunner, 'command').run()
+ items = get_queue_messages('virgin', expected_count=1)
+ results_msg = items[0].msg
+
+ self.assertIn('A pgp enabled address not found.',
+ results_msg.get_payload())