aboutsummaryrefslogtreecommitdiff
path: root/src/mailman_pgp/workflows/tests/test_base.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/mailman_pgp/workflows/tests/test_base.py')
-rw-r--r--src/mailman_pgp/workflows/tests/test_base.py81
1 files changed, 37 insertions, 44 deletions
diff --git a/src/mailman_pgp/workflows/tests/test_base.py b/src/mailman_pgp/workflows/tests/test_base.py
index 913ab67..af00d01 100644
--- a/src/mailman_pgp/workflows/tests/test_base.py
+++ b/src/mailman_pgp/workflows/tests/test_base.py
@@ -38,7 +38,6 @@ from mailman_pgp.workflows.subscription import ConfirmSubscriptionPolicy
class PubkeyMixinSetup():
-
def setUp(self):
with mm_transaction():
self.mlist = create_list('test@example.com',
@@ -55,6 +54,27 @@ class PubkeyMixinSetup():
self.sender = self.um.create_address('rsa-1024b@example.org')
+class TestPGPMixin(PubkeyMixinSetup, unittest.TestCase):
+ layer = PGPConfigLayer
+
+ def test_create_address(self):
+ workflow = ConfirmSubscriptionPolicy(self.mlist, self.sender,
+ pre_verified=True,
+ pre_confirmed=True)
+ workflow.run_thru('pgp_prepare')
+ pgp_address = PGPAddress.for_address(self.sender)
+ self.assertIsNotNone(pgp_address)
+
+ def test_address_existing(self):
+ workflow = ConfirmSubscriptionPolicy(self.mlist, self.sender,
+ pre_verified=True,
+ pre_confirmed=True)
+ with transaction() as t:
+ pgp_address = PGPAddress(self.sender)
+ t.add(pgp_address)
+ workflow.run_thru('pgp_prepare')
+
+
class TestSetPubkeyMixin(PubkeyMixinSetup, unittest.TestCase):
layer = PGPConfigLayer
@@ -75,60 +95,38 @@ class TestSetPubkeyMixin(PubkeyMixinSetup, unittest.TestCase):
pre_verified=True,
pre_confirmed=True)
list(workflow)
- with transaction() as t:
- pgp_address = PGPAddress(self.sender)
+ with transaction():
+ pgp_address = PGPAddress.for_address(self.sender)
pgp_address.key = self.sender_key.pubkey
- t.add(pgp_address)
receive_workflow = ConfirmSubscriptionPolicy(self.mlist)
receive_workflow.token = workflow.token
receive_workflow.restore()
receive_workflow.run_thru('receive_key')
- self.assertIsNotNone(receive_workflow.pubkey)
- 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)
- step.assert_called_once_with()
-
- def test_receive_key_no_address(self):
+ def test_set_pubkey(self):
workflow = ConfirmSubscriptionPolicy(self.mlist, self.sender,
pre_verified=True,
- pre_confirmed=True)
- list(workflow)
- receive_workflow = ConfirmSubscriptionPolicy(self.mlist)
- receive_workflow.token = workflow.token
- receive_workflow.restore()
- receive_workflow.run_thru('receive_key')
-
- self.assertIsNone(receive_workflow.pubkey)
- with patch.object(receive_workflow,
- '_step_send_key_request') as step:
- next(receive_workflow)
- step.assert_called_once_with()
+ pre_confirmed=True,
+ pubkey=self.sender_key.pubkey)
+ workflow.run_thru('pubkey_checks')
+ pgp_address = PGPAddress.for_address(self.sender)
+ self.assertIsNotNone(pgp_address)
+ self.assertIsNotNone(pgp_address.key)
+ self.assertEqual(pgp_address.key_fingerprint,
+ self.sender_key.fingerprint)
- def test_receive_key_pubkey_confirmed(self):
+ def test_pubkey_set(self):
workflow = ConfirmSubscriptionPolicy(self.mlist, self.sender,
pre_verified=True,
- pre_confirmed=True,
- pubkey_pre_confirmed=True)
- list(workflow)
+ pre_confirmed=True)
with transaction() as t:
pgp_address = PGPAddress(self.sender)
pgp_address.key = self.sender_key.pubkey
t.add(pgp_address)
-
- receive_workflow = ConfirmSubscriptionPolicy(self.mlist)
- receive_workflow.token = workflow.token
- receive_workflow.restore()
- receive_workflow.run_thru('pubkey_confirmation')
- with patch.object(receive_workflow, '_step_do_subscription') as step:
- next(receive_workflow)
- step.assert_called_once_with()
+ workflow.run_thru('pubkey_checks')
+ self.assertEqual(pgp_address.key_fingerprint,
+ self.sender_key.fingerprint)
class TestConfirmPubkeyMixin(PubkeyMixinSetup, unittest.TestCase):
@@ -168,11 +166,6 @@ class TestConfirmPubkeyMixin(PubkeyMixinSetup, unittest.TestCase):
pubkey_pre_confirmed=False)
list(workflow)
- with transaction() as t:
- pgp_address = PGPAddress(self.sender)
- pgp_address.key = self.sender_key.pubkey
- t.add(pgp_address)
-
receive_workflow = ConfirmSubscriptionPolicy(self.mlist)
receive_workflow.token = workflow.token
receive_workflow.restore()