summaryrefslogtreecommitdiff
path: root/src/mailman/core/tests/test_runner.py
diff options
context:
space:
mode:
authorAurélien Bompard2014-11-30 11:07:47 +0100
committerAurélien Bompard2014-11-30 11:07:47 +0100
commit0567d12d3cefc204f056b3b70f5f88b7ec02318a (patch)
tree1499bb768093872dc23b1b1585e4b38a59366b76 /src/mailman/core/tests/test_runner.py
parent3a94916c286c2be8677c601810c3437262b0fa6f (diff)
downloadmailman-0567d12d3cefc204f056b3b70f5f88b7ec02318a.tar.gz
mailman-0567d12d3cefc204f056b3b70f5f88b7ec02318a.tar.zst
mailman-0567d12d3cefc204f056b3b70f5f88b7ec02318a.zip
Diffstat (limited to 'src/mailman/core/tests/test_runner.py')
-rw-r--r--src/mailman/core/tests/test_runner.py21
1 files changed, 20 insertions, 1 deletions
diff --git a/src/mailman/core/tests/test_runner.py b/src/mailman/core/tests/test_runner.py
index 2875b3b10..06c360fa0 100644
--- a/src/mailman/core/tests/test_runner.py
+++ b/src/mailman/core/tests/test_runner.py
@@ -25,14 +25,16 @@ __all__ = [
]
+import os
import unittest
+from email.mime.multipart import MIMEMultipart
from mailman.app.lifecycle import create_list
from mailman.config import config
from mailman.core.runner import Runner
from mailman.interfaces.runner import RunnerCrashEvent
from mailman.testing.helpers import (
- configuration, event_subscribers, get_queue_messages,
+ configuration, event_subscribers, get_queue_messages, LogFileMark,
make_testable_runner, specialized_message_from_string as mfs)
from mailman.testing.layers import ConfigLayer
@@ -42,6 +44,11 @@ class CrashingRunner(Runner):
def _dispose(self, mlist, msg, msgdata):
raise RuntimeError('borked')
+
+class StoringRunner(Runner):
+ _disposed = []
+ def _dispose(self, mlist, msg, msgdata):
+ self._disposed.append((mlist, msg, msgdata))
class TestRunner(unittest.TestCase):
@@ -87,3 +94,15 @@ Message-ID: <ant>
shunted = get_queue_messages('shunt')
self.assertEqual(len(shunted), 1)
self.assertEqual(shunted[0].msg['message-id'], '<ant>')
+
+ def test_multipart_message(self):
+ runner = make_testable_runner(StoringRunner, 'in')
+ msg = MIMEMultipart()
+ msg["Message-ID"] = "<ant>"
+ config.switchboards['in'].enqueue(msg, listname='test@example.com')
+ with event_subscribers(self._got_event):
+ runner.run()
+ error_log = LogFileMark('mailman.error')
+ self.assertEqual(len(self._events), 0, error_log.read())
+ self.assertEqual(len(runner._disposed), 1)
+ self.assertEqual(runner._disposed[0][1]["Message-ID"], "<ant>")