diff options
-rw-r--r-- | gitlab/tests/test_cli.py | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/gitlab/tests/test_cli.py b/gitlab/tests/test_cli.py index b8062b3..a39ef96 100644 --- a/gitlab/tests/test_cli.py +++ b/gitlab/tests/test_cli.py @@ -31,6 +31,7 @@ except ImportError: from gitlab import cli import gitlab.v3.cli +import gitlab.v4.cli class TestCLI(unittest.TestCase): @@ -86,6 +87,42 @@ class TestCLI(unittest.TestCase): self.assertEqual(args.config_file, ['foo.cfg', 'bar.cfg']) +class TestV4CLI(unittest.TestCase): + def test_parse_args(self): + parser = cli._get_parser(gitlab.v4.cli) + args = parser.parse_args(['project', 'list']) + self.assertEqual(args.what, 'project') + self.assertEqual(args.action, 'list') + + def test_parser(self): + parser = cli._get_parser(gitlab.v4.cli) + subparsers = None + for action in parser._actions: + if type(action) == argparse._SubParsersAction: + subparsers = action + break + self.assertIsNotNone(subparsers) + self.assertIn('project', subparsers.choices) + + user_subparsers = None + for action in subparsers.choices['project']._actions: + if type(action) == argparse._SubParsersAction: + user_subparsers = action + break + self.assertIsNotNone(user_subparsers) + self.assertIn('list', user_subparsers.choices) + self.assertIn('get', user_subparsers.choices) + self.assertIn('delete', user_subparsers.choices) + self.assertIn('update', user_subparsers.choices) + self.assertIn('create', user_subparsers.choices) + self.assertIn('archive', user_subparsers.choices) + self.assertIn('unarchive', user_subparsers.choices) + + actions = user_subparsers.choices['create']._option_string_actions + self.assertFalse(actions['--description'].required) + self.assertTrue(actions['--name'].required) + + class TestV3CLI(unittest.TestCase): def test_parse_args(self): parser = cli._get_parser(gitlab.v3.cli) |