diff options
Diffstat (limited to 'Mailman/tests/helpers.py')
| -rw-r--r-- | Mailman/tests/helpers.py | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/Mailman/tests/helpers.py b/Mailman/tests/helpers.py index 1b24f11e6..180ac8af8 100644 --- a/Mailman/tests/helpers.py +++ b/Mailman/tests/helpers.py @@ -19,11 +19,18 @@ __metaclass__ = type __all__ = [ + 'digest_mbox', 'get_queue_messages', 'make_testable_runner', ] +import os +import mailbox + +from Mailman.queue import Switchboard + + def make_testable_runner(runner_class): """Create a queue runner that runs until its queue is empty. @@ -52,13 +59,26 @@ class _Bag: def get_queue_messages(queue): """Return and clear all the messages in the given queue. - :param queue: An ISwitchboard + :param queue: An ISwitchboard or a string naming a queue. :return: A list of 2-tuples where each item contains the message and message metadata. """ + if isinstance(queue, basestring): + queue = Switchboard(queue) messages = [] for filebase in queue.files: msg, msgdata = queue.dequeue(filebase) messages.append(_Bag(msg=msg, msgdata=msgdata)) queue.finish(filebase) return messages + + + +def digest_mbox(mlist): + """The mailing list's pending digest as a mailbox. + + :param mlist: The mailing list. + :return: The mailing list's pending digest as a mailbox. + """ + path = os.path.join(mlist.full_path, 'digest.mbox') + return mailbox.mbox(path) |
