From 88391bf7cd7a8d710a62fdb835ef56f06da8a6a5 Mon Sep 17 00:00:00 2001 From: Gauvain Pocentek Date: Sun, 11 Mar 2018 08:48:47 +0100 Subject: Add basic unit tests for v4 CLI --- gitlab/tests/test_cli.py | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) (limited to 'gitlab') 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) -- cgit v1.2.1