Barry Warsaw pushed to branch click-cli at mailman / Mailman Core
Commits: 07dcb654 by Barry Warsaw at 2017-07-16T15:28:25-04:00 Cover cli_unshunt. - - - - - 2 changed files: - src/mailman/commands/cli_unshunt.py - + src/mailman/commands/tests/test_cli_unshunt.py Changes: ===================================== src/mailman/commands/cli_unshunt.py ===================================== --- a/src/mailman/commands/cli_unshunt.py +++ b/src/mailman/commands/cli_unshunt.py @@ -43,7 +43,7 @@ def unshunt(discard): which_queue = msgdata.get('whichq', 'in') if not discard: config.switchboards[which_queue].enqueue(msg, msgdata) - except Exception: + except Exception as error: print(_('Cannot unshunt message $filebase, skipping:\n$error'), file=sys.stderr) else: ===================================== src/mailman/commands/tests/test_cli_unshunt.py ===================================== --- /dev/null +++ b/src/mailman/commands/tests/test_cli_unshunt.py @@ -0,0 +1,45 @@ +# Copyright (C) 2017 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 `unshunt` command.""" + +import unittest + +from click.testing import CliRunner +from mailman.commands.cli_unshunt import unshunt +from mailman.config import config +from mailman.email.message import Message +from mailman.testing.layers import ConfigLayer +from unittest.mock import patch + + +class TestUnshunt(unittest.TestCase): + layer = ConfigLayer + maxDiff = None + + def setUp(self): + self._command = CliRunner() + self._queue = config.switchboards['shunt'] + + def test_dequeue_fails(self): + filebase = self._queue.enqueue(Message(), {}) + with patch.object(self._queue, 'dequeue', + side_effect=RuntimeError('oops!')): + results = self._command.invoke(unshunt) + self.assertEqual( + results.output, + 'Cannot unshunt message {}, skipping:\noops!\n'.format(filebase)) View it on GitLab: https://gitlab.com/mailman/mailman/commit/07dcb6547513b3659160bc808117198c05577cc4 --- View it on GitLab: https://gitlab.com/mailman/mailman/commit/07dcb6547513b3659160bc808117198c05577cc4 You're receiving this email because of your account on gitlab.com.
_______________________________________________ Mailman-checkins mailing list Mailman-checkins@python.org Unsubscribe: https://mail.python.org/mailman/options/mailman-checkins/archive%40jab.org