diff options
| author | J08nY | 2017-08-07 19:00:49 +0200 |
|---|---|---|
| committer | J08nY | 2017-08-07 19:00:49 +0200 |
| commit | ee9da27283ffb7adc836f764f1442cd06e3fb2a5 (patch) | |
| tree | 2b687f39714580b1de70baf9e3dd9957326c4989 /src/mailman/rest/tests | |
| parent | d107fd41f03b57f7731b60bb7ba921febc3ce3b9 (diff) | |
| parent | b902d7858d8302d248add89a5983c521c3581c4c (diff) | |
| download | mailman-ee9da27283ffb7adc836f764f1442cd06e3fb2a5.tar.gz mailman-ee9da27283ffb7adc836f764f1442cd06e3fb2a5.tar.zst mailman-ee9da27283ffb7adc836f764f1442cd06e3fb2a5.zip | |
Diffstat (limited to 'src/mailman/rest/tests')
| -rw-r--r-- | src/mailman/rest/tests/test_listconf.py | 6 | ||||
| -rw-r--r-- | src/mailman/rest/tests/test_membership.py | 19 | ||||
| -rw-r--r-- | src/mailman/rest/tests/test_moderation.py | 7 | ||||
| -rw-r--r-- | src/mailman/rest/tests/test_users.py | 2 | ||||
| -rw-r--r-- | src/mailman/rest/tests/test_validator.py | 44 |
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') |
