Stephen A. Goss has proposed merging lp:~postfuturist/mailman/retry-test into 
lp:mailman.

Requested reviews:
  Mailman Coders (mailman-coders)
Related bugs:
  Bug #872391 in GNU Mailman: "KeyError: u'outgoing' in runner"
  https://bugs.launchpad.net/mailman/+bug/872391

For more details, see:
https://code.launchpad.net/~postfuturist/mailman/retry-test/+merge/80267

The RetryRunner has a simple but fatal bug. This branch includes a fix, plus a 
unit test that tests the basic function of the RetryRunner.
-- 
https://code.launchpad.net/~postfuturist/mailman/retry-test/+merge/80267
Your team Mailman Coders is requested to review the proposed merge of 
lp:~postfuturist/mailman/retry-test into lp:mailman.
=== modified file 'src/mailman/runners/retry.py'
--- src/mailman/runners/retry.py	2011-05-29 16:45:19 +0000
+++ src/mailman/runners/retry.py	2011-10-24 20:32:23 +0000
@@ -37,7 +37,7 @@
 
     def _dispose(self, mlist, msg, msgdata):
         # Move the message to the out queue for another try.
-        config.switchboards['outgoing'].enqueue(msg, msgdata)
+        config.switchboards['out'].enqueue(msg, msgdata)
         return False
 
     def _snooze(self, filecnt):

=== added file 'src/mailman/runners/tests/test_retry.py'
--- src/mailman/runners/tests/test_retry.py	1970-01-01 00:00:00 +0000
+++ src/mailman/runners/tests/test_retry.py	2011-10-24 20:32:23 +0000
@@ -0,0 +1,65 @@
+# Copyright (C) 2011 by the Free Software Foundation, Inc.
+#
+# This file is part of GNU Mailman.
+#
+# GNU Mailman is free software: you can redistribute it and/or modify it under
+# the terms of the GNU General Public License as published by the Free
+# Software Foundation, either version 3 of the License, or (at your option)
+# any later version.
+#
+# GNU Mailman is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+# more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# GNU Mailman.  If not, see <http://www.gnu.org/licenses/>.
+
+"""Test the retry runner."""
+
+from __future__ import absolute_import, unicode_literals
+
+__metaclass__ = type
+__all__ = [
+    'test_suite',
+    ]
+
+import unittest
+
+from zope.component import getUtility
+
+from mailman.app.lifecycle import create_list
+from mailman.config import config
+from mailman.runners.retry import RetryRunner
+from mailman.testing.helpers import (
+    get_queue_messages,
+    make_testable_runner,
+    specialized_message_from_string as message_from_string)
+from mailman.testing.layers import ConfigLayer
+
+
+class TestRetryRunner(unittest.TestCase):
+    """Test the retry runner."""
+
+    layer = ConfigLayer
+
+    def setUp(self):
+        self._mlist = create_list('[email protected]')
+        self._retryq = config.switchboards['retry']
+        self._outq = config.switchboards['out']
+        self._runner = make_testable_runner(RetryRunner, 'retry')
+        self._msg = message_from_string("""\
+From: [email protected]
+To: [email protected]
+Message-Id: <first>
+
+""")
+        self._msgdata = dict(listname='[email protected]')
+
+    def tearDown(self):
+        pass
+
+    def test_message_put_in_outgoing_queue(self):
+        self._retryq.enqueue(self._msg, self._msgdata)
+        self._runner.run()
+        self.assertEqual(len(get_queue_messages('out')), 1)

_______________________________________________
Mailman-coders mailing list
[email protected]
http://mail.python.org/mailman/listinfo/mailman-coders

Reply via email to