Пример #1
0
 def test_show_help_for_help(self):
     # FIXME(dhellmann): Are commands tied too closely to the app? Or
     # do commands know too much about apps by using them to get to the
     # command manager?
     stdout = StringIO()
     app = application.App('testing',
                           '1',
                           utils.TestCommandManager(utils.TEST_NAMESPACE),
                           stdout=stdout)
     app.NAME = 'test'
     app.options = mock.Mock()
     help_cmd = help.HelpCommand(app, mock.Mock())
     parser = help_cmd.get_parser('test')
     parsed_args = parser.parse_args([])
     try:
         help_cmd.run(parsed_args)
     except SystemExit:
         pass
     help_text = stdout.getvalue()
     basecommand = os.path.split(sys.argv[0])[1]
     self.assertIn('usage: %s [--version]' % basecommand, help_text)
     self.assertIn('optional arguments:\n  --version', help_text)
     expected = ('  one            Test command.\n'
                 '  three word command  Test command.\n')
     self.assertIn(expected, help_text)
Пример #2
0
 def test_list_matching_commands_no_match(self):
     # FIXME(dhellmann): Are commands tied too closely to the app? Or
     # do commands know too much about apps by using them to get to the
     # command manager?
     stdout = io.StringIO()
     app = application.App('testing', '1',
                           utils.TestCommandManager(utils.TEST_NAMESPACE),
                           stdout=stdout)
     app.NAME = 'test'
     help_cmd = help.HelpCommand(app, mock.Mock())
     parser = help_cmd.get_parser('test')
     parsed_args = parser.parse_args(['z'])
     self.assertRaises(
         ValueError,
         help_cmd.run,
         parsed_args,
     )
Пример #3
0
 def test_show_help_for_command(self):
     # FIXME(dhellmann): Are commands tied too closely to the app? Or
     # do commands know too much about apps by using them to get to the
     # command manager?
     stdout = io.StringIO()
     app = application.App('testing', '1',
                           utils.TestCommandManager(utils.TEST_NAMESPACE),
                           stdout=stdout)
     app.NAME = 'test'
     help_cmd = help.HelpCommand(app, mock.Mock())
     parser = help_cmd.get_parser('test')
     parsed_args = parser.parse_args(['one'])
     try:
         help_cmd.run(parsed_args)
     except help.HelpExit:
         pass
     self.assertEqual('TestParser', stdout.getvalue())
Пример #4
0
 def test_list_matching_commands(self):
     # FIXME(dhellmann): Are commands tied too closely to the app? Or
     # do commands know too much about apps by using them to get to the
     # command manager?
     stdout = io.StringIO()
     app = application.App('testing', '1',
                           utils.TestCommandManager(utils.TEST_NAMESPACE),
                           stdout=stdout)
     app.NAME = 'test'
     help_cmd = help.HelpCommand(app, mock.Mock())
     parser = help_cmd.get_parser('test')
     parsed_args = parser.parse_args(['t'])
     try:
         help_cmd.run(parsed_args)
     except help.HelpExit:
         pass
     help_output = stdout.getvalue()
     self.assertIn('Command "t" matches:', help_output)
     self.assertIn('three word command\n  two words\n', help_output)
Пример #5
0
 def test_show_help_print_exc_with_ep_load_fail(self, mock_load):
     stdout = io.StringIO()
     app = application.App('testing', '1',
                           utils.TestCommandManager(utils.TEST_NAMESPACE),
                           stdout=stdout)
     app.NAME = 'test'
     app.options = mock.Mock()
     app.options.debug = True
     help_cmd = help.HelpCommand(app, mock.Mock())
     parser = help_cmd.get_parser('test')
     parsed_args = parser.parse_args([])
     try:
         help_cmd.run(parsed_args)
     except help.HelpExit:
         pass
     help_output = stdout.getvalue()
     self.assertIn('Commands:', help_output)
     self.assertIn('Could not load', help_output)
     self.assertIn('Exception: Could not load EntryPoint', help_output)
Пример #6
0
def test_show_help_with_ep_load_fail(mock_load):
    stdout = StringIO()
    app = application.App('testing', '1',
                          utils.TestCommandManager(utils.TEST_NAMESPACE),
                          stdout=stdout)
    app.NAME = 'test'
    app.options = mock.Mock()
    app.options.debug = False
    help_cmd = help.HelpCommand(app, mock.Mock())
    parser = help_cmd.get_parser('test')
    parsed_args = parser.parse_args([])
    try:
        help_cmd.run(parsed_args)
    except SystemExit:
        pass
    help_output = stdout.getvalue()
    assert 'Commands:' in help_output
    assert 'Could not load' in help_output
    assert 'Exception: Could not load EntryPoint' not in help_output
Пример #7
0
def test_list_matching_commands_no_match():
    # FIXME(dhellmann): Are commands tied too closely to the app? Or
    # do commands know too much about apps by using them to get to the
    # command manager?
    stdout = StringIO()
    app = application.App('testing', '1',
                          utils.TestCommandManager(utils.TEST_NAMESPACE),
                          stdout=stdout)
    app.NAME = 'test'
    help_cmd = help.HelpCommand(app, mock.Mock())
    parser = help_cmd.get_parser('test')
    parsed_args = parser.parse_args(['z'])
    try:
        help_cmd.run(parsed_args)
    except SystemExit:
        pass
    except ValueError:
        pass
    else:
        assert False, 'Should have seen a ValueError'