summaryrefslogtreecommitdiff
path: root/src/mailman/app/tests/test_subscriptions.py
diff options
context:
space:
mode:
authorAurélien Bompard2015-03-27 16:39:06 +0100
committerAurélien Bompard2015-03-27 16:39:06 +0100
commit9fe551853e8170040a1f09fa340b1a6a4ff4194c (patch)
tree2164ae8b54a1906446cec105c81c6a5dcaac364f /src/mailman/app/tests/test_subscriptions.py
parente98c240509d0797a5280f334b0efad4861b0f75b (diff)
downloadmailman-9fe551853e8170040a1f09fa340b1a6a4ff4194c.tar.gz
mailman-9fe551853e8170040a1f09fa340b1a6a4ff4194c.tar.zst
mailman-9fe551853e8170040a1f09fa340b1a6a4ff4194c.zip
Diffstat (limited to 'src/mailman/app/tests/test_subscriptions.py')
-rw-r--r--src/mailman/app/tests/test_subscriptions.py74
1 files changed, 42 insertions, 32 deletions
diff --git a/src/mailman/app/tests/test_subscriptions.py b/src/mailman/app/tests/test_subscriptions.py
index 05646c929..325126214 100644
--- a/src/mailman/app/tests/test_subscriptions.py
+++ b/src/mailman/app/tests/test_subscriptions.py
@@ -27,7 +27,7 @@ import uuid
import unittest
from mailman.app.lifecycle import create_list
-from mailman.app.subscriptions import SubscriptionWorkflow
+from mailman.app.subscriptions import Workflow, SubscriptionWorkflow
from mailman.interfaces.address import InvalidEmailAddressError
from mailman.interfaces.member import MemberRole, MissingPreferredAddressError
from mailman.interfaces.requests import IListRequests, RequestType
@@ -37,6 +37,7 @@ from mailman.testing.layers import ConfigLayer
from mailman.interfaces.mailinglist import SubscriptionPolicy
from mailman.interfaces.usermanager import IUserManager
from mailman.utilities.datetime import now
+from mock import Mock
from zope.component import getUtility
@@ -74,46 +75,55 @@ class TestJoin(unittest.TestCase):
-class TestSubscriptionWorkflow(unittest.TestCase):
+class TestWorkflow(unittest.TestCase):
layer = ConfigLayer
def setUp(self):
- self._mlist = create_list('test@example.com')
- self._anne = 'anne@example.com'
- self._user_manager = getUtility(IUserManager)
+ self.workflow = Workflow()
+ self.workflow._test_attribute = "test-value"
+ self.workflow._step_test = Mock()
+ self.workflow._next.append("test")
+
+ def test_iter_steps(self):
+ next(self.workflow)
+ self.assertTrue(self.workflow._step_test.called)
+ self.assertEqual(len(self.workflow._next), 0)
+ try:
+ next(self.workflow)
+ except StopIteration:
+ pass
+ else:
+ self.fail()
def test_save_restore(self):
- anne = self._user_manager.create_address(self._anne, 'Anne Person')
- workflow = SubscriptionWorkflow(
- self._mlist, anne,
- pre_verified=True, pre_confirmed=False, pre_approved=False)
- next(workflow)
- next_step = workflow._next[0]
- workflow.save_state()
+ self.workflow.save_state()
# Now create a new instance and restore
- workflow = SubscriptionWorkflow(
- self._mlist, anne,
- pre_verified=None, pre_confirmed=None, pre_approved=None)
- workflow.restore_state()
- self.assertEqual(next_step, workflow._next[0])
- self.assertEqual(workflow.pre_verified, True)
- self.assertEqual(workflow.pre_confirmed, False)
- self.assertEqual(workflow.pre_approved, False)
+ new_workflow = Workflow()
+ self.assertEqual(len(new_workflow._next), 0)
+ self.assertFalse(hasattr(new_workflow, "_test_attribute"))
+ new_workflow.restore_state()
+ self.assertEqual(len(new_workflow._next), 1)
+ self.assertEqual(new_workflow._next[0], "test")
+ self.assertEqual(self.workflow._test_attribute, "test-value")
def test_save_restore_no_next_step(self):
- anne = self._user_manager.create_address(self._anne, 'Anne Person')
- workflow = SubscriptionWorkflow(
- self._mlist, anne,
- pre_verified=True, pre_confirmed=False, pre_approved=False)
- workflow._next.pop()
- self.assertEqual(len(workflow._next), 0)
- workflow.save_state()
+ self.workflow._next.clear()
+ self.workflow.save_state()
# Now create a new instance and restore
- workflow = SubscriptionWorkflow(
- self._mlist, anne,
- pre_verified=None, pre_confirmed=None, pre_approved=None)
- workflow.restore_state()
- self.assertEqual(len(workflow._next), 0)
+ new_workflow = Workflow()
+ new_workflow._next.append("test")
+ new_workflow.restore_state()
+ self.assertEqual(len(new_workflow._next), 0)
+
+
+
+class TestSubscriptionWorkflow(unittest.TestCase):
+ layer = ConfigLayer
+
+ def setUp(self):
+ self._mlist = create_list('test@example.com')
+ self._anne = 'anne@example.com'
+ self._user_manager = getUtility(IUserManager)
def test_preverified_address_joins_open_list(self):
# The mailing list has an open subscription policy, so the subscriber