summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBarry Warsaw2016-01-24 22:42:08 -0500
committerBarry Warsaw2016-01-25 15:08:43 -0500
commitaf5df60a98d6264ce0f328f29a00449eb833bded (patch)
tree16d1a9f03d5dbcc7a4b0cc2bdb7375d45849c5e9 /src
parentd063ee4dd4579ca931e36f0761084e4ab7cd0335 (diff)
downloadmailman-af5df60a98d6264ce0f328f29a00449eb833bded.tar.gz
mailman-af5df60a98d6264ce0f328f29a00449eb833bded.tar.zst
mailman-af5df60a98d6264ce0f328f29a00449eb833bded.zip
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):