summaryrefslogtreecommitdiff
path: root/gitlab/tests
diff options
context:
space:
mode:
authorGauvain Pocentek <gauvain@pocentek.net>2018-03-11 08:48:47 +0100
committerGauvain Pocentek <gauvain@pocentek.net>2018-03-11 08:48:47 +0100
commit88391bf7cd7a8d710a62fdb835ef56f06da8a6a5 (patch)
tree2df98137e65c43d9a231ec1bb0c736decb04eb02 /gitlab/tests
parent7c6be94630d35793e58fafd38625c29779f7a09a (diff)
downloadgitlab-88391bf7cd7a8d710a62fdb835ef56f06da8a6a5.tar.gz
Add basic unit tests for v4 CLI
Diffstat (limited to 'gitlab/tests')
-rw-r--r--gitlab/tests/test_cli.py37
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)