summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBarry Warsaw2016-09-01 07:39:10 -0400
committerBarry Warsaw2016-09-01 07:39:10 -0400
commit9f7fa58e81c2bc639645383a12b8136e2cf2cb4b (patch)
tree6b62af3b55c938a99323c7bfefa1ecbeae5c10ae
parent1cf46c8819609239a9e455fd5133228fd43cd604 (diff)
downloadmailman-9f7fa58e81c2bc639645383a12b8136e2cf2cb4b.tar.gz
mailman-9f7fa58e81c2bc639645383a12b8136e2cf2cb4b.tar.zst
mailman-9f7fa58e81c2bc639645383a12b8136e2cf2cb4b.zip
-rw-r--r--src/mailman/app/workflowmanager.py10
-rw-r--r--src/mailman/commands/eml_confirm.py5
-rw-r--r--src/mailman/commands/eml_membership.py12
-rw-r--r--src/mailman/commands/tests/test_confirm.py6
-rw-r--r--src/mailman/config/configure.zcml4
-rw-r--r--src/mailman/model/tests/test_workflow.py2
-rw-r--r--src/mailman/rest/members.py7
-rw-r--r--src/mailman/rest/sub_moderation.py4
-rw-r--r--src/mailman/rest/tests/test_membership.py9
-rw-r--r--src/mailman/rest/tests/test_moderation.py4
-rw-r--r--src/mailman/runners/tests/test_confirm.py4
-rw-r--r--src/mailman/runners/tests/test_join.py6
12 files changed, 37 insertions, 36 deletions
diff --git a/src/mailman/app/workflowmanager.py b/src/mailman/app/workflowmanager.py
index deb15ea76..78669ecd9 100644
--- a/src/mailman/app/workflowmanager.py
+++ b/src/mailman/app/workflowmanager.py
@@ -25,8 +25,8 @@ from mailman.app.unsubscriptions import UnSubscriptionWorkflow
from mailman.database.transaction import flush
from mailman.email.message import UserNotification
from mailman.interfaces.pending import IPendable, IPendings
-from mailman.interfaces.workflowmanager import (
- ConfirmationNeededEvent, IWorkflowManager)
+from mailman.interfaces.subscriptions import (
+ ConfirmationNeededEvent, ISubscriptionManager)
from mailman.interfaces.templates import ITemplateLoader
from mailman.interfaces.workflow import IWorkflowStateManager
from mailman.utilities.string import expand
@@ -83,7 +83,7 @@ class BaseWorkflowManager:
@public
-@implementer(IWorkflowManager)
+@implementer(ISubscriptionManager)
class SubscriptionWorkflowManager(BaseWorkflowManager):
"""Handle registrations and confirmations for subscriptions."""
@@ -91,7 +91,7 @@ class SubscriptionWorkflowManager(BaseWorkflowManager):
def register(self, subscriber=None, *,
pre_verified=False, pre_confirmed=False, pre_approved=False):
- """See `IWorkflowManager`."""
+ """See `ISubscriptionManager`."""
workflow = SubscriptionWorkflow(
self._mlist, subscriber,
pre_verified=pre_verified,
@@ -102,7 +102,7 @@ class SubscriptionWorkflowManager(BaseWorkflowManager):
@public
-@implementer(IWorkflowManager)
+@implementer(ISubscriptionManager)
class UnsubscriptionWorkflowManager(BaseWorkflowManager):
"""Handle un-subscriptions and confirmations for un-subscriptions."""
diff --git a/src/mailman/commands/eml_confirm.py b/src/mailman/commands/eml_confirm.py
index 8522f8fa0..b8e1610c4 100644
--- a/src/mailman/commands/eml_confirm.py
+++ b/src/mailman/commands/eml_confirm.py
@@ -20,8 +20,7 @@
from mailman import public
from mailman.core.i18n import _
from mailman.interfaces.command import ContinueProcessing, IEmailCommand
-from mailman.interfaces.workflowmanager import IWorkflowManager
-from mailman.interfaces.subscriptions import TokenOwner
+from mailman.interfaces.subscriptions import ISubscriptionManager, TokenOwner
from zope.component import getAdapter
from zope.interface import implementer
@@ -52,7 +51,7 @@ class Confirm:
results.confirms = tokens
try:
new_token, token_owner, member = getAdapter(
- mlist, IWorkflowManager, name='subscribe').confirm(token)
+ mlist, ISubscriptionManager, name='subscribe').confirm(token)
if new_token is None:
assert token_owner is TokenOwner.no_one, token_owner
assert member is not None, member
diff --git a/src/mailman/commands/eml_membership.py b/src/mailman/commands/eml_membership.py
index fad1cbe50..4e2e78f5d 100644
--- a/src/mailman/commands/eml_membership.py
+++ b/src/mailman/commands/eml_membership.py
@@ -22,8 +22,8 @@ from mailman import public
from mailman.core.i18n import _
from mailman.interfaces.command import ContinueProcessing, IEmailCommand
from mailman.interfaces.member import DeliveryMode, MemberRole
-from mailman.interfaces.workflowmanager import IWorkflowManager
-from mailman.interfaces.subscriptions import ISubscriptionService
+from mailman.interfaces.subscriptions import (
+ ISubscriptionManager, ISubscriptionService)
from mailman.interfaces.usermanager import IUserManager
from zope.component import getAdapter, getUtility
from zope.interface import implementer
@@ -31,7 +31,7 @@ from zope.interface import implementer
def match_subscriber(email, display_name):
# Return something matching the email which should be used as the
- # subscriber by the IWorkflowManager interface.
+ # subscriber by the ISubscriptionManager interface.
manager = getUtility(IUserManager)
# Is there a user with a preferred address matching the email?
user = manager.get_user(email)
@@ -102,7 +102,7 @@ used.
return ContinueProcessing.yes
subscriber = match_subscriber(email, display_name)
getAdapter(
- mlist, IWorkflowManager, name='subscribe').register(subscriber)
+ mlist, ISubscriptionManager, name='subscribe').register(subscriber)
print(_('Confirmation email sent to $person'), file=results)
return ContinueProcessing.yes
@@ -187,8 +187,8 @@ You may be asked to confirm your request.""")
'$self.name: $email is not a member of $mlist.fqdn_listname'),
file=results)
return ContinueProcessing.no
- getAdapter(
- mlist, IWorkflowManager, name='unsubscribe').register(user_address)
+ getAdapter(mlist, ISubscriptionManager, name='unsubscribe').register(
+ user_address)
# member.unsubscribe()
person = formataddr((user.display_name, email)) # noqa
print(_('Confirmation email sent to $person to leave'
diff --git a/src/mailman/commands/tests/test_confirm.py b/src/mailman/commands/tests/test_confirm.py
index 797edcad5..7351bd6b7 100644
--- a/src/mailman/commands/tests/test_confirm.py
+++ b/src/mailman/commands/tests/test_confirm.py
@@ -25,7 +25,7 @@ from mailman.config import config
from mailman.email.message import Message
from mailman.interfaces.command import ContinueProcessing
from mailman.interfaces.mailinglist import SubscriptionPolicy
-from mailman.interfaces.workflowmanager import IWorkflowManager
+from mailman.interfaces.subscriptions import ISubscriptionManager
from mailman.interfaces.usermanager import IUserManager
from mailman.runners.command import CommandRunner, Results
from mailman.testing.helpers import get_queue_messages, make_testable_runner
@@ -43,7 +43,7 @@ class TestConfirm(unittest.TestCase):
anne = getUtility(IUserManager).create_address(
'anne@example.com', 'Anne Person')
self._token, token_owner, member = getAdapter(
- self._mlist, IWorkflowManager, name='subscribe').register(anne)
+ self._mlist, ISubscriptionManager, name='subscribe').register(anne)
self._command = Confirm()
# Clear the virgin queue.
get_queue_messages('virgin')
@@ -89,7 +89,7 @@ class TestEmailResponses(unittest.TestCase):
# Clear any previously queued confirmation messages.
get_queue_messages('virgin')
self._token, token_owner, member = getAdapter(
- self._mlist, IWorkflowManager, name='subscribe').register(bart)
+ self._mlist, ISubscriptionManager, name='subscribe').register(bart)
# There should now be one email message in the virgin queue, i.e. the
# confirmation message sent to Bart.
items = get_queue_messages('virgin', expected_count=1)
diff --git a/src/mailman/config/configure.zcml b/src/mailman/config/configure.zcml
index 98cfa1232..f2725c5c7 100644
--- a/src/mailman/config/configure.zcml
+++ b/src/mailman/config/configure.zcml
@@ -49,14 +49,14 @@
<adapter
for="mailman.interfaces.mailinglist.IMailingList"
provides="mailman.interfaces.subscriptions.ISubscriptionManager"
- factory="mailman.app.workflowmanager.SubscriptionWorkflowManager"
+ factory="mailman.app.subscriptions.SubscriptionWorkflow"
name='subscribe'
/>
<adapter
for="mailman.interfaces.mailinglist.IMailingList"
provides="mailman.interfaces.subscriptions.ISubscriptionManager"
- factory="mailman.app.workflowmanager.UnsubscriptionWorkflowManager"
+ factory="mailman.app.subscriptions.UnsubscriptionWorkflow"
name='unsubscribe'
/>
diff --git a/src/mailman/model/tests/test_workflow.py b/src/mailman/model/tests/test_workflow.py
index 2b6a593a9..ee14f17a7 100644
--- a/src/mailman/model/tests/test_workflow.py
+++ b/src/mailman/model/tests/test_workflow.py
@@ -125,7 +125,7 @@ class TestWorkflow(unittest.TestCase):
def test_discard(self):
# Discard some workflow state. This is use by
- # IWorkflowManager.discard().
+ # ISubscriptionManager.discard().
self._manager.save('ant', 'token', 'one')
self._manager.save('bee', 'token', 'two')
self._manager.save('ant', 'nekot', 'three')
diff --git a/src/mailman/rest/members.py b/src/mailman/rest/members.py
index ed2246366..fd9f141cc 100644
--- a/src/mailman/rest/members.py
+++ b/src/mailman/rest/members.py
@@ -25,9 +25,9 @@ from mailman.interfaces.listmanager import IListManager
from mailman.interfaces.member import (
AlreadySubscribedError, DeliveryMode, MemberRole, MembershipError,
MembershipIsBannedError, MissingPreferredAddressError)
-from mailman.interfaces.workflowmanager import IWorkflowManager
from mailman.interfaces.subscriptions import (
- ISubscriptionService, RequestRecord, SubscriptionPendingError, TokenOwner)
+ ISubscriptionManager, ISubscriptionService, RequestRecord,
+ SubscriptionPendingError, TokenOwner)
from mailman.interfaces.user import IUser, UnverifiedAddressError
from mailman.interfaces.usermanager import IUserManager
from mailman.rest.helpers import (
@@ -253,7 +253,8 @@ class AllMembers(_MemberBase):
# Now we can run the registration process until either the
# subscriber is subscribed, or the workflow is paused for
# verification, confirmation, or approval.
- registrar = getAdapter(mlist, IWorkflowManager, name='subscribe')
+ registrar = getAdapter(
+ mlist, ISubscriptionManager, name='subscribe')
try:
token, token_owner, member = registrar.register(
subscriber,
diff --git a/src/mailman/rest/sub_moderation.py b/src/mailman/rest/sub_moderation.py
index f37e62ac5..273d4c3a0 100644
--- a/src/mailman/rest/sub_moderation.py
+++ b/src/mailman/rest/sub_moderation.py
@@ -23,7 +23,7 @@ from mailman.core.i18n import _
from mailman.interfaces.action import Action
from mailman.interfaces.member import AlreadySubscribedError
from mailman.interfaces.pending import IPendings
-from mailman.interfaces.workflowmanager import IWorkflowManager
+from mailman.interfaces.subscriptions import ISubscriptionManager
from mailman.rest.helpers import (
CollectionMixin, bad_request, child, conflict, etag, no_content,
not_found, okay)
@@ -55,7 +55,7 @@ class IndividualRequest(_ModerationBase):
super().__init__()
self._mlist = mlist
self._registrar = getAdapter(
- self._mlist, IWorkflowManager, name='subscribe')
+ self._mlist, ISubscriptionManager, name='subscribe')
self._token = token
def on_get(self, request, response):
diff --git a/src/mailman/rest/tests/test_membership.py b/src/mailman/rest/tests/test_membership.py
index 2726a480f..9e5a486f3 100644
--- a/src/mailman/rest/tests/test_membership.py
+++ b/src/mailman/rest/tests/test_membership.py
@@ -25,8 +25,7 @@ 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.workflowmanager import IWorkflowManager
-from mailman.interfaces.subscriptions import TokenOwner
+from mailman.interfaces.subscriptions import ISubscriptionManager, TokenOwner
from mailman.interfaces.usermanager import IUserManager
from mailman.runners.incoming import IncomingRunner
from mailman.testing.helpers import (
@@ -215,7 +214,8 @@ class TestMembership(unittest.TestCase):
def test_duplicate_pending_subscription(self):
# Issue #199 - a member's subscription is already pending and they try
# to subscribe again.
- registrar = getAdapter(self._mlist, IWorkflowManager, name='subscribe')
+ registrar = getAdapter(
+ self._mlist, ISubscriptionManager, name='subscribe')
with transaction():
self._mlist.subscription_policy = SubscriptionPolicy.moderate
anne = self._usermanager.create_address('anne@example.com')
@@ -238,7 +238,8 @@ class TestMembership(unittest.TestCase):
# Issue #199 - a member's subscription is already pending and they try
# to subscribe again. Unlike above, this pend is waiting for the user
# to confirm their subscription.
- registrar = getAdapter(self._mlist, IWorkflowManager, name='subscribe')
+ registrar = getAdapter(
+ self._mlist, ISubscriptionManager, name='subscribe')
with transaction():
self._mlist.subscription_policy = (
SubscriptionPolicy.confirm_then_moderate)
diff --git a/src/mailman/rest/tests/test_moderation.py b/src/mailman/rest/tests/test_moderation.py
index 1adc1aa83..374398502 100644
--- a/src/mailman/rest/tests/test_moderation.py
+++ b/src/mailman/rest/tests/test_moderation.py
@@ -24,7 +24,7 @@ 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.workflowmanager import IWorkflowManager
+from mailman.interfaces.subscriptions import ISubscriptionManager
from mailman.interfaces.requests import IListRequests, RequestType
from mailman.interfaces.usermanager import IUserManager
from mailman.testing.helpers import (
@@ -151,7 +151,7 @@ class TestSubscriptionModeration(unittest.TestCase):
with transaction():
self._mlist = create_list('ant@example.com')
self._registrar = getAdapter(
- self._mlist, IWorkflowManager, name='subscribe')
+ self._mlist, ISubscriptionManager, name='subscribe')
manager = getUtility(IUserManager)
self._anne = manager.create_address(
'anne@example.com', 'Anne Person')
diff --git a/src/mailman/runners/tests/test_confirm.py b/src/mailman/runners/tests/test_confirm.py
index d6bc4c34d..bb18914d0 100644
--- a/src/mailman/runners/tests/test_confirm.py
+++ b/src/mailman/runners/tests/test_confirm.py
@@ -24,7 +24,7 @@ from email.iterators import body_line_iterator
from mailman.app.lifecycle import create_list
from mailman.config import config
from mailman.database.transaction import transaction
-from mailman.interfaces.workflowmanager import IWorkflowManager
+from mailman.interfaces.subscriptions import ISubscriptionManager
from mailman.interfaces.usermanager import IUserManager
from mailman.runners.command import CommandRunner
from mailman.testing.helpers import (
@@ -48,7 +48,7 @@ class TestConfirm(unittest.TestCase):
self._mlist.send_welcome_message = False
anne = getUtility(IUserManager).create_address('anne@example.org')
registrar = getAdapter(
- self._mlist, IWorkflowManager, name='subscribe')
+ self._mlist, ISubscriptionManager, name='subscribe')
self._token, token_owner, member = registrar.register(anne)
def test_confirm_with_re_prefix(self):
diff --git a/src/mailman/runners/tests/test_join.py b/src/mailman/runners/tests/test_join.py
index b565ca048..1fb1dfe5c 100644
--- a/src/mailman/runners/tests/test_join.py
+++ b/src/mailman/runners/tests/test_join.py
@@ -23,8 +23,8 @@ from email.iterators import body_line_iterator
from mailman.app.lifecycle import create_list
from mailman.config import config
from mailman.interfaces.member import DeliveryMode
-from mailman.interfaces.workflowmanager import IWorkflowManager
-from mailman.interfaces.subscriptions import ISubscriptionService, TokenOwner
+from mailman.interfaces.subscriptions import (
+ ISubscriptionManager, ISubscriptionService, TokenOwner)
from mailman.interfaces.usermanager import IUserManager
from mailman.runners.command import CommandRunner
from mailman.testing.helpers import (
@@ -146,7 +146,7 @@ class TestJoinWithDigests(unittest.TestCase):
self.assertEqual(subject_words[0], 'confirm')
token = subject_words[1]
token, token_owner, rmember = getAdapter(
- self._mlist, IWorkflowManager, name='subscribe').confirm(token)
+ self._mlist, ISubscriptionManager, name='subscribe').confirm(token)
self.assertIsNone(token)
self.assertEqual(token_owner, TokenOwner.no_one)
# Now, make sure that Anne is a member of the list and is receiving