summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mailman/app/membership.py2
-rw-r--r--src/mailman/model/tests/test_mailinglist.py19
2 files changed, 19 insertions, 2 deletions
diff --git a/src/mailman/app/membership.py b/src/mailman/app/membership.py
index 8ae2ba095..81f221edc 100644
--- a/src/mailman/app/membership.py
+++ b/src/mailman/app/membership.py
@@ -79,7 +79,7 @@ def add_member(mlist, record, role=MemberRole.member):
for address in user.addresses:
if address.original_email == record.email:
case_preserved = address
- if address.email == record.email.lower():
+ if address.email == record.email.lower(): # pragma: no branch
case_insensitive = address
assert case_preserved is not None or case_insensitive is not None, (
'Could not find a linked address for: {}'.format(record.email))
diff --git a/src/mailman/model/tests/test_mailinglist.py b/src/mailman/model/tests/test_mailinglist.py
index 9e3708ee5..328be93a1 100644
--- a/src/mailman/model/tests/test_mailinglist.py
+++ b/src/mailman/model/tests/test_mailinglist.py
@@ -36,7 +36,7 @@ from mailman.interfaces.mailinglist import (
from mailman.interfaces.member import (
AlreadySubscribedError, MemberRole, MissingPreferredAddressError)
from mailman.interfaces.usermanager import IUserManager
-from mailman.testing.helpers import configuration
+from mailman.testing.helpers import configuration, get_queue_messages
from mailman.testing.layers import ConfigLayer
from mailman.utilities.datetime import now
from zope.component import getUtility
@@ -86,6 +86,23 @@ class TestMailingList(unittest.TestCase):
def test_subscribe_argument(self):
self.assertRaises(ValueError, self._mlist.subscribe, 'anne')
+ def test_subscribe_by_user_admin_notification(self):
+ # A notification is sent to the administrator with the user's email
+ # address when a user is subscribed instead of an explicit address.
+ self._mlist.send_welcome_message = False
+ self._mlist.admin_notify_mchanges = True
+ manager = getUtility(IUserManager)
+ user = manager.make_user('anne@example.com', 'Anne Person')
+ address = manager.create_address('aperson@example.com', 'A. Person')
+ address.verified_on = now()
+ user.preferred_address = address
+ self._mlist.subscribe(user)
+ # The welcome message was sent to the preferred address.
+ items = get_queue_messages('virgin')
+ self.assertEqual(len(items), 1)
+ self.assertIn('Anne Person <aperson@example.com>',
+ items[0].msg.get_payload())
+
class TestListArchiver(unittest.TestCase):