diff options
| author | Barry Warsaw | 2015-08-13 20:40:21 -0400 |
|---|---|---|
| committer | Barry Warsaw | 2015-08-13 20:40:21 -0400 |
| commit | a4077f26a8d586a55963d75a7b97103e116bff2d (patch) | |
| tree | a162502251da5a6e81a145b2472e3e9bf95465fd | |
| parent | e64ee63b97decf8223a96bbc834a438e4d4fda58 (diff) | |
| parent | 022bdf8b5a07c412461851ea7b758cf96eb7f0a1 (diff) | |
| download | mailman-a4077f26a8d586a55963d75a7b97103e116bff2d.tar.gz mailman-a4077f26a8d586a55963d75a7b97103e116bff2d.tar.zst mailman-a4077f26a8d586a55963d75a7b97103e116bff2d.zip | |
| -rw-r--r-- | src/mailman/bin/mailman.py | 2 | ||||
| -rw-r--r-- | src/mailman/bin/tests/test_mailman.py | 42 | ||||
| -rw-r--r-- | src/mailman/docs/NEWS.rst | 2 |
3 files changed, 45 insertions, 1 deletions
diff --git a/src/mailman/bin/mailman.py b/src/mailman/bin/mailman.py index 3865fef19..fd8eb914e 100644 --- a/src/mailman/bin/mailman.py +++ b/src/mailman/bin/mailman.py @@ -88,7 +88,7 @@ def main(): command.add(parser, command_parser) command_parser.set_defaults(func=command.process) args = parser.parse_args() - if len(args.__dict__) == 0: + if len(args.__dict__) <= 1: # No arguments or subcommands were given. parser.print_help() parser.exit() diff --git a/src/mailman/bin/tests/test_mailman.py b/src/mailman/bin/tests/test_mailman.py new file mode 100644 index 000000000..8c5a3396b --- /dev/null +++ b/src/mailman/bin/tests/test_mailman.py @@ -0,0 +1,42 @@ +# Copyright (C) 2015 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 mailman command utilities.""" + +__all__ = [ + 'TestMailmanCommand', + ] + + +import unittest + +from io import StringIO +from mock import patch +from mailman.bin.mailman import main + + + +class TestMailmanCommand(unittest.TestCase): + def test_mailman_command_without_subcommand_prints_help(self): + # Issue #137: Running `mailman` without a subcommand raises an + # AttributeError. + testargs = ['mailman'] + output = StringIO() + with patch('sys.argv', testargs), patch('sys.stdout', output): + with self.assertRaises(SystemExit): + main() + self.assertIn('usage', output.getvalue()) diff --git a/src/mailman/docs/NEWS.rst b/src/mailman/docs/NEWS.rst index c7b88b298..0d46faf59 100644 --- a/src/mailman/docs/NEWS.rst +++ b/src/mailman/docs/NEWS.rst @@ -26,6 +26,8 @@ Bugs * Confirmation messages should not be `Precedence: bulk`. (Closes #75) * Fix constraint violations on mailing list deletes affecting PostgreSQL. Given by Abhilash Raj. (Closes #115) + * `mailman` command with no subcommand now prints the help text. Given by + Abhilash Raj. (Closes #137) Configuration ------------- |
