aboutsummaryrefslogtreecommitdiff
path: root/src/mailman_pgp/workflows/tests
diff options
context:
space:
mode:
authorJ08nY2017-07-13 00:04:53 +0200
committerJ08nY2017-07-13 00:04:53 +0200
commita4e412d40162e35c54704793938e1a5cbf196086 (patch)
tree35502630230979059dd6e67a2b141c7abbd06fd6 /src/mailman_pgp/workflows/tests
parentce02d5e98feb6dab1a4a8189d109495a41718260 (diff)
downloadmailman-pgp-a4e412d40162e35c54704793938e1a5cbf196086.tar.gz
mailman-pgp-a4e412d40162e35c54704793938e1a5cbf196086.tar.zst
mailman-pgp-a4e412d40162e35c54704793938e1a5cbf196086.zip
Diffstat (limited to 'src/mailman_pgp/workflows/tests')
-rw-r--r--src/mailman_pgp/workflows/tests/test_base.py85
1 files changed, 56 insertions, 29 deletions
diff --git a/src/mailman_pgp/workflows/tests/test_base.py b/src/mailman_pgp/workflows/tests/test_base.py
index ef3a009..913ab67 100644
--- a/src/mailman_pgp/workflows/tests/test_base.py
+++ b/src/mailman_pgp/workflows/tests/test_base.py
@@ -37,8 +37,7 @@ from mailman_pgp.workflows.base import KEY_REQUEST
from mailman_pgp.workflows.subscription import ConfirmSubscriptionPolicy
-class TestPubkeyMixin(unittest.TestCase):
- layer = PGPConfigLayer
+class PubkeyMixinSetup():
def setUp(self):
with mm_transaction():
@@ -55,19 +54,9 @@ class TestPubkeyMixin(unittest.TestCase):
self.sender_key = load_key('rsa_1024.priv.asc')
self.sender = self.um.create_address('rsa-1024b@example.org')
- def test_pended_data(self):
- workflow = ConfirmSubscriptionPolicy(self.mlist, self.sender,
- pre_verified=True,
- pre_confirmed=True)
- with suppress(StopIteration):
- workflow.run_thru('send_key_request')
- self.assertIsNotNone(workflow.token)
- pendable = getUtility(IPendings).confirm(workflow.token, expunge=False)
- self.assertEqual(pendable['list_id'], 'test.example.com')
- self.assertEqual(pendable['email'], 'rsa-1024b@example.org')
- self.assertEqual(pendable['display_name'], '')
- self.assertEqual(pendable['when'], '2005-08-01T07:49:23')
- self.assertEqual(pendable['token_owner'], 'subscriber')
+
+class TestSetPubkeyMixin(PubkeyMixinSetup, unittest.TestCase):
+ layer = PGPConfigLayer
def test_key_request_sent(self):
workflow = ConfirmSubscriptionPolicy(self.mlist, self.sender,
@@ -81,17 +70,6 @@ class TestPubkeyMixin(unittest.TestCase):
self.assertEqual(message['Subject'], 'key set {}'.format(token))
self.assertEqual(message.get_payload(), KEY_REQUEST)
- def test_key_request_pubkey_set(self):
- workflow = ConfirmSubscriptionPolicy(self.mlist, self.sender,
- pre_verified=True,
- pre_confirmed=True,
- pubkey=self.sender_key.pubkey,
- pubkey_pre_confirmed=True)
- workflow.run_thru('pubkey_checks')
- with patch.object(workflow, '_step_do_subscription') as step:
- next(workflow)
- step.assert_called_once_with()
-
def test_receive_key(self):
workflow = ConfirmSubscriptionPolicy(self.mlist, self.sender,
pre_verified=True,
@@ -111,6 +89,7 @@ class TestPubkeyMixin(unittest.TestCase):
self.assertEqual(receive_workflow.pubkey.fingerprint,
self.sender_key.pubkey.fingerprint)
+ receive_workflow.run_thru('pubkey_confirmation')
with patch.object(receive_workflow,
'_step_send_key_confirm_request') as step:
next(receive_workflow)
@@ -146,11 +125,26 @@ class TestPubkeyMixin(unittest.TestCase):
receive_workflow = ConfirmSubscriptionPolicy(self.mlist)
receive_workflow.token = workflow.token
receive_workflow.restore()
- receive_workflow.run_thru('receive_key')
+ receive_workflow.run_thru('pubkey_confirmation')
with patch.object(receive_workflow, '_step_do_subscription') as step:
next(receive_workflow)
step.assert_called_once_with()
+
+class TestConfirmPubkeyMixin(PubkeyMixinSetup, unittest.TestCase):
+ layer = PGPConfigLayer
+
+ def test_key_request_pubkey_set(self):
+ workflow = ConfirmSubscriptionPolicy(self.mlist, self.sender,
+ pre_verified=True,
+ pre_confirmed=True,
+ pubkey=self.sender_key.pubkey,
+ pubkey_pre_confirmed=True)
+ workflow.run_thru('pubkey_confirmation')
+ with patch.object(workflow, '_step_do_subscription') as step:
+ next(workflow)
+ step.assert_called_once_with()
+
def test_send_key_confirm_request(self):
workflow = ConfirmSubscriptionPolicy(self.mlist, self.sender,
pre_verified=True,
@@ -187,6 +181,39 @@ class TestPubkeyMixin(unittest.TestCase):
next(receive_workflow)
step.assert_called_once_with()
+
+class TestBothPubkeyMixins(PubkeyMixinSetup, unittest.TestCase):
+ layer = PGPConfigLayer
+
+ def test_pended_data_key_request(self):
+ workflow = ConfirmSubscriptionPolicy(self.mlist, self.sender,
+ pre_verified=True,
+ pre_confirmed=True)
+ with suppress(StopIteration):
+ workflow.run_thru('send_key_request')
+ self.assertIsNotNone(workflow.token)
+ pendable = getUtility(IPendings).confirm(workflow.token, expunge=False)
+ self.assertEqual(pendable['list_id'], 'test.example.com')
+ self.assertEqual(pendable['email'], 'rsa-1024b@example.org')
+ self.assertEqual(pendable['display_name'], '')
+ self.assertEqual(pendable['when'], '2005-08-01T07:49:23')
+ self.assertEqual(pendable['token_owner'], 'subscriber')
+
+ def test_pended_data_key_confirmation(self):
+ workflow = ConfirmSubscriptionPolicy(self.mlist, self.sender,
+ pre_verified=True,
+ pre_confirmed=True,
+ pubkey=self.sender_key.pubkey)
+ with suppress(StopIteration):
+ workflow.run_thru('send_key_confirm_request')
+ self.assertIsNotNone(workflow.token)
+ pendable = getUtility(IPendings).confirm(workflow.token, expunge=False)
+ self.assertEqual(pendable['list_id'], 'test.example.com')
+ self.assertEqual(pendable['email'], 'rsa-1024b@example.org')
+ self.assertEqual(pendable['display_name'], '')
+ self.assertEqual(pendable['when'], '2005-08-01T07:49:23')
+ self.assertEqual(pendable['token_owner'], 'subscriber')
+
def test_exisitng_pgp_address(self):
workflow = ConfirmSubscriptionPolicy(self.mlist, self.sender,
pre_verified=True,
@@ -198,7 +225,7 @@ class TestPubkeyMixin(unittest.TestCase):
pgp_address.key_confirmed = True
t.add(pgp_address)
- workflow.run_thru('pubkey_checks')
+ workflow.run_thru('pubkey_confirmation')
with patch.object(workflow, '_step_do_subscription') as step:
next(workflow)
step.assert_called_once_with()
@@ -213,7 +240,7 @@ class TestPubkeyMixin(unittest.TestCase):
pgp_address.key = self.sender_key.pubkey
t.add(pgp_address)
- workflow.run_thru('pubkey_checks')
+ workflow.run_thru('pubkey_confirmation')
with patch.object(workflow, '_step_send_key_confirm_request') as step:
next(workflow)
step.assert_called_once_with()