Fixes #602 Allowing `help $cmd` with no figfile

Signed-off-by: Michael A. Smith <michael@smith-li.com>
This commit is contained in:
Michael A. Smith 2014-11-01 19:22:22 -04:00
parent 1bd3d0dd77
commit 782a46fd60
3 changed files with 15 additions and 0 deletions

View File

@ -42,6 +42,11 @@ class Command(DocoptCommand):
raise errors.ConnectionErrorGeneric(self.get_client().base_url)
def perform_command(self, options, handler, command_options):
if options['COMMAND'] == 'help':
# Skip looking up the figfile.
handler(None, command_options)
return
explicit_config_path = options.get('--file') or os.environ.get('FIG_FILE')
project = self.get_project(
self.get_config_path(explicit_config_path),

0
tests/fixtures/no-figfile/.gitignore vendored Normal file
View File

View File

@ -25,6 +25,16 @@ class CLITestCase(DockerClientTestCase):
def project(self):
return self.command.get_project(self.command.get_config_path())
def test_help(self):
old_base_dir = self.command.base_dir
self.command.base_dir = 'tests/fixtures/no-figfile'
with self.assertRaises(SystemExit) as exc_context:
self.command.dispatch(['help', 'up'], None)
self.assertIn('Usage: up [options] [SERVICE...]', str(exc_context.exception))
# self.project.kill() fails during teardown
# unless there is a figfile.
self.command.base_dir = old_base_dir
@patch('sys.stdout', new_callable=StringIO)
def test_ps(self, mock_stdout):
self.project.get_service('simple').create_container()