diff --git a/compose/cli/main.py b/compose/cli/main.py index 29d808ce..ae787c9b 100644 --- a/compose/cli/main.py +++ b/compose/cli/main.py @@ -372,10 +372,14 @@ class TopLevelCommand(object): """ Get help on a command. - Usage: help COMMAND + Usage: help [COMMAND] """ - handler = get_handler(cls, options['COMMAND']) - raise SystemExit(getdoc(handler)) + if options['COMMAND']: + subject = get_handler(cls, options['COMMAND']) + else: + subject = cls + + print(getdoc(subject)) def kill(self, options): """ diff --git a/tests/unit/cli_test.py b/tests/unit/cli_test.py index bd35dc06..2c90b29b 100644 --- a/tests/unit/cli_test.py +++ b/tests/unit/cli_test.py @@ -5,6 +5,7 @@ from __future__ import unicode_literals import os import shutil import tempfile +from io import StringIO import docker import py @@ -83,10 +84,10 @@ class CLITestCase(unittest.TestCase): self.assertTrue(project.services) def test_command_help(self): - with pytest.raises(SystemExit) as exc: + with mock.patch('sys.stdout', new=StringIO()) as fake_stdout: TopLevelCommand.help({'COMMAND': 'up'}) - assert 'Usage: up' in exc.exconly() + assert "Usage: up" in fake_stdout.getvalue() def test_command_help_nonexistent(self): with pytest.raises(NoSuchCommand):