summaryrefslogtreecommitdiff
path: root/src/mailman/rest/tests
diff options
context:
space:
mode:
Diffstat (limited to 'src/mailman/rest/tests')
-rw-r--r--src/mailman/rest/tests/test_listconf.py6
-rw-r--r--src/mailman/rest/tests/test_membership.py19
-rw-r--r--src/mailman/rest/tests/test_moderation.py7
-rw-r--r--src/mailman/rest/tests/test_users.py2
-rw-r--r--src/mailman/rest/tests/test_validator.py44
5 files changed, 55 insertions, 23 deletions
diff --git a/src/mailman/rest/tests/test_listconf.py b/src/mailman/rest/tests/test_listconf.py
index 782effd29..bb88feb61 100644
--- a/src/mailman/rest/tests/test_listconf.py
+++ b/src/mailman/rest/tests/test_listconf.py
@@ -22,11 +22,11 @@ import unittest
from mailman.app.lifecycle import create_list
from mailman.database.transaction import transaction
from mailman.interfaces.digests import DigestFrequency
-from mailman.interfaces.mailinglist import (
- IAcceptableAliasSet, SubscriptionPolicy)
+from mailman.interfaces.mailinglist import IAcceptableAliasSet
from mailman.interfaces.template import ITemplateManager
from mailman.testing.helpers import call_api
from mailman.testing.layers import RESTLayer
+from mailman.workflows.subscription import ConfirmModerationSubscriptionPolicy
from urllib.error import HTTPError
from zope.component import getUtility
@@ -197,7 +197,7 @@ class TestConfiguration(unittest.TestCase):
self.assertEqual(response.status_code, 204)
# And now we verify that it has the requested setting.
self.assertEqual(self._mlist.subscription_policy,
- SubscriptionPolicy.confirm_then_moderate)
+ ConfirmModerationSubscriptionPolicy)
def test_patch_attribute_double(self):
with self.assertRaises(HTTPError) as cm:
diff --git a/src/mailman/rest/tests/test_membership.py b/src/mailman/rest/tests/test_membership.py
index e5a2ce283..bb0134ac5 100644
--- a/src/mailman/rest/tests/test_membership.py
+++ b/src/mailman/rest/tests/test_membership.py
@@ -23,7 +23,6 @@ from mailman.app.lifecycle import create_list
from mailman.config import config
from mailman.database.transaction import transaction
from mailman.interfaces.bans import IBanManager
-from mailman.interfaces.mailinglist import SubscriptionPolicy
from mailman.interfaces.member import DeliveryMode, MemberRole
from mailman.interfaces.subscriptions import ISubscriptionManager, TokenOwner
from mailman.interfaces.usermanager import IUserManager
@@ -33,6 +32,8 @@ from mailman.testing.helpers import (
set_preferred, subscribe, wait_for_webservice)
from mailman.testing.layers import ConfigLayer, RESTLayer
from mailman.utilities.datetime import now
+from mailman.workflows.subscription import (
+ ConfirmModerationSubscriptionPolicy, ModerationSubscriptionPolicy)
from urllib.error import HTTPError
from zope.component import getUtility
@@ -93,7 +94,6 @@ class TestMembership(unittest.TestCase):
'subscriber': 'anne@example.com',
'pre_verified': True,
'pre_confirmed': True,
- 'pre_approved': True,
})
self.assertEqual(cm.exception.code, 409)
self.assertEqual(cm.exception.reason, 'Member already subscribed')
@@ -108,7 +108,6 @@ class TestMembership(unittest.TestCase):
'subscriber': 'anne@example.com',
'pre_verified': False,
'pre_confirmed': False,
- 'pre_approved': False,
})
self.assertEqual(cm.exception.code, 409)
self.assertEqual(cm.exception.reason, 'Member already subscribed')
@@ -123,7 +122,6 @@ class TestMembership(unittest.TestCase):
'subscriber': '00000000000000000000000000000001',
'pre_verified': True,
'pre_confirmed': True,
- 'pre_approved': True,
})
self.assertEqual(cm.exception.code, 400)
self.assertEqual(cm.exception.reason, 'User has no preferred address')
@@ -135,7 +133,6 @@ class TestMembership(unittest.TestCase):
'subscriber': '00000000000000000000000000000801',
'pre_verified': True,
'pre_confirmed': True,
- 'pre_approved': True,
})
self.assertEqual(cm.exception.code, 400)
self.assertEqual(cm.exception.reason, 'No such user')
@@ -153,7 +150,6 @@ class TestMembership(unittest.TestCase):
'subscriber': 'ANNE@example.com',
'pre_verified': True,
'pre_confirmed': True,
- 'pre_approved': True,
})
self.assertEqual(cm.exception.code, 409)
self.assertEqual(cm.exception.reason, 'Member already subscribed')
@@ -171,7 +167,6 @@ class TestMembership(unittest.TestCase):
'subscriber': 'anne@example.com',
'pre_verified': True,
'pre_confirmed': True,
- 'pre_approved': True,
})
self.assertEqual(cm.exception.code, 409)
self.assertEqual(cm.exception.reason, 'Member already subscribed')
@@ -195,7 +190,6 @@ class TestMembership(unittest.TestCase):
'display_name': 'Hugh Person',
'pre_verified': True,
'pre_confirmed': True,
- 'pre_approved': True,
})
self.assertEqual(json, None)
self.assertEqual(response.status_code, 201)
@@ -231,10 +225,10 @@ class TestMembership(unittest.TestCase):
# to subscribe again.
registrar = ISubscriptionManager(self._mlist)
with transaction():
- self._mlist.subscription_policy = SubscriptionPolicy.moderate
+ self._mlist.subscription_policy = ModerationSubscriptionPolicy
anne = self._usermanager.create_address('anne@example.com')
token, token_owner, member = registrar.register(
- anne, pre_verified=True, pre_confirmed=True)
+ anne, pre_verified=True)
self.assertEqual(token_owner, TokenOwner.moderator)
self.assertIsNone(member)
with self.assertRaises(HTTPError) as cm:
@@ -242,7 +236,6 @@ class TestMembership(unittest.TestCase):
'list_id': 'test.example.com',
'subscriber': 'anne@example.com',
'pre_verified': True,
- 'pre_confirmed': True,
})
self.assertEqual(cm.exception.code, 409)
self.assertEqual(cm.exception.reason,
@@ -255,7 +248,7 @@ class TestMembership(unittest.TestCase):
registrar = ISubscriptionManager(self._mlist)
with transaction():
self._mlist.subscription_policy = (
- SubscriptionPolicy.confirm_then_moderate)
+ ConfirmModerationSubscriptionPolicy)
anne = self._usermanager.create_address('anne@example.com')
token, token_owner, member = registrar.register(
anne, pre_verified=True)
@@ -645,7 +638,6 @@ class TestAPI31Members(unittest.TestCase):
'subscriber': '00000000000000000000000000000001',
'pre_verified': True,
'pre_confirmed': True,
- 'pre_approved': True,
})
self.assertEqual(response.status_code, 201)
self.assertEqual(
@@ -681,7 +673,6 @@ class TestAPI31Members(unittest.TestCase):
'subscriber': '1',
'pre_verified': True,
'pre_confirmed': True,
- 'pre_approved': True,
})
# This is a bad request because the `subscriber` value isn't something
# that's known to the system, in API 3.1. It's not technically a 404
diff --git a/src/mailman/rest/tests/test_moderation.py b/src/mailman/rest/tests/test_moderation.py
index 0a9bb2608..5b55eb575 100644
--- a/src/mailman/rest/tests/test_moderation.py
+++ b/src/mailman/rest/tests/test_moderation.py
@@ -24,7 +24,6 @@ from mailman.app.lifecycle import create_list
from mailman.app.moderator import hold_message
from mailman.database.transaction import transaction
from mailman.interfaces.bans import IBanManager
-from mailman.interfaces.mailinglist import SubscriptionPolicy
from mailman.interfaces.requests import IListRequests, RequestType
from mailman.interfaces.subscriptions import ISubscriptionManager
from mailman.interfaces.usermanager import IUserManager
@@ -32,6 +31,7 @@ from mailman.testing.helpers import (
call_api, get_queue_messages, set_preferred,
specialized_message_from_string as mfs)
from mailman.testing.layers import RESTLayer
+from mailman.workflows.subscription import ModerationSubscriptionPolicy
from pkg_resources import resource_filename
from urllib.error import HTTPError
from zope.component import getUtility
@@ -296,10 +296,9 @@ class TestSubscriptionModeration(unittest.TestCase):
# Anne tries to subscribe to a list that only requests moderator
# approval.
with transaction():
- self._mlist.subscription_policy = SubscriptionPolicy.moderate
+ self._mlist.subscription_policy = ModerationSubscriptionPolicy
token, token_owner, member = self._registrar.register(
- self._anne,
- pre_verified=True, pre_confirmed=True)
+ self._anne, pre_verified=True)
# There's now one request in the queue, and it's waiting on moderator
# approval.
json, response = call_api(
diff --git a/src/mailman/rest/tests/test_users.py b/src/mailman/rest/tests/test_users.py
index 97f4b76d2..4c97e5c1d 100644
--- a/src/mailman/rest/tests/test_users.py
+++ b/src/mailman/rest/tests/test_users.py
@@ -437,7 +437,7 @@ class TestLP1074374(unittest.TestCase):
list_id='test.example.com',
subscriber='anne@example.com',
role='member',
- pre_verified=True, pre_confirmed=True, pre_approved=True))
+ pre_verified=True, pre_confirmed=True))
# This is not the Anne you're looking for. (IOW, the new Anne is a
# different user).
json, response = call_api(
diff --git a/src/mailman/rest/tests/test_validator.py b/src/mailman/rest/tests/test_validator.py
index 0d197032e..95855d170 100644
--- a/src/mailman/rest/tests/test_validator.py
+++ b/src/mailman/rest/tests/test_validator.py
@@ -22,9 +22,14 @@ import unittest
from mailman.core.api import API30, API31
from mailman.interfaces.action import Action
from mailman.interfaces.usermanager import IUserManager
+from mailman.interfaces.workflows import (ISubscriptionWorkflow,
+ IUnsubscriptionWorkflow)
from mailman.rest.validator import (
- enum_validator, list_of_strings_validator, subscriber_validator)
+ enum_validator, list_of_strings_validator, policy_validator,
+ subscriber_validator)
from mailman.testing.layers import RESTLayer
+from mailman.workflows.subscription import ConfirmSubscriptionPolicy
+from mailman.workflows.unsubscription import ConfirmUnsubscriptionPolicy
from zope.component import getUtility
@@ -91,3 +96,40 @@ class TestValidators(unittest.TestCase):
def test_enum_validator_blank(self):
self.assertEqual(enum_validator(Action, allow_blank=True)(''), None)
+
+ def test_policy_validator_wrong_policy_class(self):
+ self.assertRaises(ValueError, policy_validator, None)
+
+ def test_policy_validator_sub_name(self):
+ self.assertEqual(policy_validator(ISubscriptionWorkflow)(
+ ConfirmSubscriptionPolicy.name), ConfirmSubscriptionPolicy)
+
+ def test_policy_validator_sub_class(self):
+ self.assertEqual(policy_validator(ISubscriptionWorkflow)(
+ ConfirmSubscriptionPolicy), ConfirmSubscriptionPolicy)
+
+ def test_policy_validator_sub_backward_compat(self):
+ self.assertEqual(policy_validator(ISubscriptionWorkflow)('confirm'),
+ ConfirmSubscriptionPolicy)
+
+ def test_policy_validator_sub_wrong_policy(self):
+ validator = policy_validator(ISubscriptionWorkflow)
+ with self.assertRaises(ValueError):
+ validator('not a subscription policy')
+
+ def test_policy_validator_unsub_name(self):
+ self.assertEqual(policy_validator(IUnsubscriptionWorkflow)(
+ ConfirmUnsubscriptionPolicy.name), ConfirmUnsubscriptionPolicy)
+
+ def test_policy_validator_unsub_class(self):
+ self.assertEqual(policy_validator(IUnsubscriptionWorkflow)(
+ ConfirmUnsubscriptionPolicy), ConfirmUnsubscriptionPolicy)
+
+ def test_policy_validator_unsub_backward_compat(self):
+ self.assertEqual(policy_validator(IUnsubscriptionWorkflow)('confirm'),
+ ConfirmUnsubscriptionPolicy)
+
+ def test_policy_validator_unsub_wrong_policy(self):
+ validator = policy_validator(IUnsubscriptionWorkflow)
+ with self.assertRaises(ValueError):
+ validator('not an unsubscription policy')