def test_add_arguments(self): """ Testing adding arguments specified to command. """ args = { ('-l', '--lang'): { 'type': str, 'default': 'english', 'metavar': 'LANG', 'choices': ['english', 'french', 'spanish'], 'help': 'the language of the greeting', }, 'name': { 'nargs': "+", 'type': str, 'help': 'the name to greet you by' } } cmd = Command(args=args) # Create subparsers primary = argparse.ArgumentParser() subparsers = primary.add_subparsers() # Create the parser parser = cmd.create_parser(subparsers) args = parser.parse_args(['--lang', 'french', 'jean', 'franc']) self.assertEqual(args.lang, 'french') self.assertEqual(args.name, ['jean', 'franc'])
def test_handle_interface(self): """ Assert that handle raises an interface error. """ with self.assertRaises(NotImplementedError): cmd = Command() cmd.handle({})
def test_add_argument_failure(self): """ Assert error on adding args without a parser. """ with self.assertRaises(TypeError): cmd = Command() cmd.add_arguments()
def test_empty_create_parser(self): """ Can create an empty command parser. """ cmd = Command() self.assertIsNone(cmd.parser) # Create subparsers primary = argparse.ArgumentParser() subparsers = primary.add_subparsers() # Create the parser parser = cmd.create_parser(subparsers) self.assertIsNotNone(cmd.parser) args = parser.parse_args([]) self.assertEqual(args.func, cmd.handle)