Mark Sapiro pushed to branch master at GNU Mailman / Mailman Core
Commits:
77fbc572 by Mark Sapiro at 2020-07-17T22:44:54-07:00
A member subscribed as a User can now be unsubscribed.
- - - - -
8b5b16b7 by Mark Sapiro at 2020-07-18T18:10:38+00:00
Merge branch 'fix_734' into 'master'
A member subscribed as a User can now be unsubscribed.
Closes #734
See merge request mailman/mailman!670
- - - - -
3 changed files:
- src/mailman/app/subscriptions.py
- src/mailman/app/tests/test_unsubscriptions.py
- src/mailman/docs/NEWS.rst
Changes:
=====================================
src/mailman/app/subscriptions.py
=====================================
@@ -396,7 +396,9 @@ class UnSubscriptionWorkflow(_SubscriptionWorkflowCommon):
self.pre_approved = pre_approved
def _step_subscription_checks(self):
- assert self.mlist.is_subscribed(self.subscriber)
+ # XXX assert self.member is not None is sufficient, but ...
+ assert (self.member is not None and
+ self.mlist.is_subscribed(self.member.subscriber))
self.push('confirmation_checks')
def _step_confirmation_checks(self):
=====================================
src/mailman/app/tests/test_unsubscriptions.py
=====================================
@@ -26,7 +26,8 @@ from mailman.interfaces.mailinglist import SubscriptionPolicy
from mailman.interfaces.pending import IPendings
from mailman.interfaces.subscriptions import TokenOwner
from mailman.interfaces.usermanager import IUserManager
-from mailman.testing.helpers import LogFileMark, get_queue_messages
+from mailman.testing.helpers import (LogFileMark, get_queue_messages,
+ set_preferred, subscribe)
from mailman.testing.layers import ConfigLayer
from mailman.utilities.datetime import now
from unittest.mock import patch
@@ -95,6 +96,19 @@ class TestUnSubscriptionWorkflow(unittest.TestCase):
self.assertRaises(AssertionError,
workflow.run_thru, 'subscription_checks')
+ def test_subscription_checks_for_user(self):
+ # subscription_checks must pass for IUser subscribed as IAddress.
+ member = subscribe(self._mlist, 'Bart')
+ set_preferred(member.user)
+ workflow = UnSubscriptionWorkflow(self._mlist, member.user)
+ workflow.run_thru('subscription_checks')
+
+ def test_subscription_checks_for_address(self):
+ # subscription_checks must pass for IAddress subscribed as IUser.
+ workflow = UnSubscriptionWorkflow(self._mlist,
+ self.anne.preferred_address)
+ workflow.run_thru('subscription_checks')
+
def test_confirmation_checks_open_list(self):
# An unsubscription from an open list does not need to be confirmed or
# moderated.
=====================================
src/mailman/docs/NEWS.rst
=====================================
@@ -27,6 +27,7 @@ Bugs
surrogates. (Closes #732)
* Bounce probes can now be sent to a member subscribed as a User.
(Closes #739)
+* A member subscribed as a User can now be unsubscribed. (Closes #734)
Command line
------------
View it on GitLab:
https://gitlab.com/mailman/mailman/-/compare/bbc96f7fd56a9e89ffd2cdcd6aba3ccbc19237a0...8b5b16b7bdaa3224e0f28693854dd40e867f84fe
--
View it on GitLab:
https://gitlab.com/mailman/mailman/-/compare/bbc96f7fd56a9e89ffd2cdcd6aba3ccbc19237a0...8b5b16b7bdaa3224e0f28693854dd40e867f84fe
You're receiving this email because of your account on gitlab.com.
_______________________________________________
Mailman-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/mailman-checkins.python.org/
Member address: [email protected]