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