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/rest/tests/test_membership.py9
2 files changed, 10 insertions, 1 deletions
diff --git a/src/mailman/app/membership.py b/src/mailman/app/membership.py
index c50169a7c..0a3b4b352 100644
--- a/src/mailman/app/membership.py
+++ b/src/mailman/app/membership.py
@@ -98,7 +98,7 @@ def add_member(mlist, email, display_name, password, delivery_mode, language,
else:
# The user exists and is linked to the address.
for address in user.addresses:
- if address.email == email:
+ if address.email == email.lower():
break
else:
raise AssertionError(
diff --git a/src/mailman/rest/tests/test_membership.py b/src/mailman/rest/tests/test_membership.py
index e1bff833b..a23f49763 100644
--- a/src/mailman/rest/tests/test_membership.py
+++ b/src/mailman/rest/tests/test_membership.py
@@ -98,6 +98,15 @@ class TestMembership(unittest.TestCase):
self.assertEqual(cm.exception.code, 409)
self.assertEqual(cm.exception.reason, b'Member already subscribed')
+ # Member subscription using case sensitive email
+ with self.assertRaises(HTTPError) as cm:
+ call_api('http://localhost:9001/3.0/members', {
+ 'list_id': 'test.example.com',
+ 'subscriber': 'ANNE@example.com',
+ })
+ self.assertEqual(cm.exception.code, 409)
+ self.assertEqual(cm.exception.reason, b'Member already subscribed')
+
def test_join_with_invalid_delivery_mode(self):
with self.assertRaises(HTTPError) as cm:
call_api('http://localhost:9001/3.0/members', {