diff options
Diffstat (limited to 'src/mailman/testing/helpers.py')
| -rw-r--r-- | src/mailman/testing/helpers.py | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/mailman/testing/helpers.py b/src/mailman/testing/helpers.py index b9936ac71..67e2ad21a 100644 --- a/src/mailman/testing/helpers.py +++ b/src/mailman/testing/helpers.py @@ -27,6 +27,7 @@ __all__ = [ 'get_lmtp_client', 'get_queue_messages', 'make_testable_runner', + 'subscribe', 'wait_for_webservice', ] @@ -43,9 +44,12 @@ import threading from contextlib import contextmanager from zope import event +from zope.component import getUtility from mailman.bin.master import Loop as Master from mailman.config import config +from mailman.interfaces.member import MemberRole +from mailman.interfaces.usermanager import IUserManager from mailman.utilities.mailbox import Mailbox @@ -252,3 +256,17 @@ def event_subscribers(*subscribers): event.subscribers = list(subscribers) yield event.subscribers[:] = old_subscribers + + + +def subscribe(mlist, first_name, role=MemberRole.member): + """Helper for subscribing a sample person to a mailing list.""" + user_manager = getUtility(IUserManager) + address = '{0}person@example.com'.format(first_name[0].lower()) + full_name = '{0} Person'.format(first_name) + person = user_manager.get_user(address) + if person is None: + person = user_manager.create_user(address, full_name) + preferred_address = list(person.addresses)[0] + preferred_address.subscribe(mlist, role) + config.db.commit() |
