diff options
author | Gauvain Pocentek <gauvain@pocentek.net> | 2018-03-11 08:48:47 +0100 |
---|---|---|
committer | Gauvain Pocentek <gauvain@pocentek.net> | 2018-03-11 08:48:47 +0100 |
commit | 88391bf7cd7a8d710a62fdb835ef56f06da8a6a5 (patch) | |
tree | 2df98137e65c43d9a231ec1bb0c736decb04eb02 /gitlab/tests/test_cli.py | |
parent | 7c6be94630d35793e58fafd38625c29779f7a09a (diff) | |
download | gitlab-88391bf7cd7a8d710a62fdb835ef56f06da8a6a5.tar.gz |
Add basic unit tests for v4 CLI
Diffstat (limited to 'gitlab/tests/test_cli.py')
-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) |