Mark Sapiro pushed to branch master at GNU Mailman / Mailman Core


Commits:
26d2e6fc by Mark Sapiro at 2020-07-18T11:46:43-07:00
Enhance testing.subscribe to enable subscribing a User.

- - - - -
a96f9f21 by Mark Sapiro at 2020-07-18T21:30:00+00:00
Merge branch 'testing' into 'master'

Enhance testing.helpers.subscribe to enable subscribing a User.

See merge request mailman/mailman!672
- - - - -


2 changed files:

- src/mailman/app/tests/test_bounces.py
- src/mailman/testing/helpers.py


Changes:

=====================================
src/mailman/app/tests/test_bounces.py
=====================================
@@ -36,7 +36,6 @@ from mailman.testing.helpers import (
     LogFileMark, get_queue_messages, specialized_message_from_string as mfs,
     subscribe)
 from mailman.testing.layers import ConfigLayer
-from mailman.utilities.datetime import now
 from zope.component import getUtility
 
 
@@ -277,18 +276,14 @@ list owner at
 
     def test_send_probe_to_user(self):
         # Can we send probe to member subscribed as a user.
-        user_manager = getUtility(IUserManager)
-        anne = user_manager.get_user('a...@example.com')
-        anne_address = user_manager.get_address('a...@example.com')
-        anne_address.verified_on = now()
-        anne.preferred_address = anne_address
-        self._member = self._mlist.subscribe(anne, send_welcome_message=False)
+        self._member = subscribe(self._mlist, 'Bart', email='b...@example.com',
+                                 as_user=True)
         token = send_probe(self._member, self._msg)
         items = get_queue_messages('virgin', expected_count=1)
         message = items[0].msg
         self.assertEqual(message['from'],
                          'test-bounces+{0}@example.com'.format(token))
-        self.assertEqual(message['to'], 'a...@example.com')
+        self.assertEqual(message['to'], 'b...@example.com')
         self.assertEqual(message['subject'], 'Test mailing list probe message')
 
     def test_no_precedence_header(self):


=====================================
src/mailman/testing/helpers.py
=====================================
@@ -417,7 +417,8 @@ class chdir:
 
 
 @public
-def subscribe(mlist, first_name, role=MemberRole.member, email=None):
+def subscribe(mlist, first_name, role=MemberRole.member, email=None,
+              as_user=False):
     """Helper for subscribing a sample person to a mailing list.
 
     Returns the newly created member object.
@@ -432,12 +433,27 @@ def subscribe(mlist, first_name, role=MemberRole.member, 
email=None):
             address = user_manager.get_address(email)
             if address is None:
                 person = user_manager.create_user(email, full_name)
-                subscription_address = list(person.addresses)[0]
+                set_preferred(person)
+                if as_user:
+                    subscription_object = person
+                else:
+                    subscription_object = person.preferred_address
             else:
-                subscription_address = address
+                if not as_user:
+                    subscription_object = address
+                else:
+                    person = user_manager.create_user(display_name=full_name)
+                    person.link(address)
+                    set_preferred(person)
+                    subscription_object = person
         else:
-            subscription_address = list(person.addresses)[0]
-        mlist.subscribe(subscription_address, role)
+            if as_user:
+                if person.preferred_address is None:
+                    set_preferred(person)
+                subscription_object = person
+            else:
+                subscription_object = list(person.addresses)[0]
+        mlist.subscribe(subscription_object, role)
         roster = mlist.get_roster(role)
         return roster.get_member(email)
 



View it on GitLab: 
https://gitlab.com/mailman/mailman/-/compare/8b5b16b7bdaa3224e0f28693854dd40e867f84fe...a96f9f219661be01c05300a5789959fe6c5b23b8

-- 
View it on GitLab: 
https://gitlab.com/mailman/mailman/-/compare/8b5b16b7bdaa3224e0f28693854dd40e867f84fe...a96f9f219661be01c05300a5789959fe6c5b23b8
You're receiving this email because of your account on gitlab.com.


_______________________________________________
Mailman-checkins mailing list -- mailman-checkins@python.org
To unsubscribe send an email to mailman-checkins-le...@python.org
https://mail.python.org/mailman3/lists/mailman-checkins.python.org/
Member address: arch...@jab.org

Reply via email to