summaryrefslogtreecommitdiff
path: root/tests/functional/cli
diff options
context:
space:
mode:
authorNejc Habjan <hab.nejc@gmail.com>2021-11-27 20:28:15 +0100
committerNejc Habjan <hab.nejc@gmail.com>2021-11-27 21:08:47 +0100
commit6b892e3dcb18d0f43da6020b08fd4ba891da3670 (patch)
treee97beaaca3b5b94764f78e0fd99df0c53fd19f8b /tests/functional/cli
parent70b9870f929c4db32fd2e1406db2122de9958bfd (diff)
downloadgitlab-test/cli-coverage.tar.gz
test(cli): improve basic CLI coveragetest/cli-coverage
Diffstat (limited to 'tests/functional/cli')
-rw-r--r--tests/functional/cli/test_cli.py49
1 files changed, 49 insertions, 0 deletions
diff --git a/tests/functional/cli/test_cli.py b/tests/functional/cli/test_cli.py
new file mode 100644
index 0000000..c4e76a7
--- /dev/null
+++ b/tests/functional/cli/test_cli.py
@@ -0,0 +1,49 @@
+import json
+
+from gitlab import __version__
+
+
+def test_main_entrypoint(script_runner, gitlab_config):
+ ret = script_runner.run("python", "-m", "gitlab", "--config-file", gitlab_config)
+ assert ret.returncode == 2
+
+
+def test_version(script_runner):
+ ret = script_runner.run("gitlab", "--version")
+ assert ret.stdout.strip() == __version__
+
+
+def test_invalid_config(script_runner):
+ ret = script_runner.run("gitlab", "--gitlab", "invalid")
+ assert not ret.success
+ assert not ret.stdout
+
+
+def test_invalid_config_prints_help(script_runner):
+ ret = script_runner.run("gitlab", "--gitlab", "invalid", "--help")
+ assert ret.success
+ assert ret.stdout
+
+
+def test_invalid_api_version(script_runner, monkeypatch, fixture_dir):
+ monkeypatch.setenv("PYTHON_GITLAB_CFG", str(fixture_dir / "invalid_version.cfg"))
+ ret = script_runner.run("gitlab", "--gitlab", "test", "project", "list")
+ assert not ret.success
+ assert ret.stderr.startswith("Unsupported API version:")
+
+
+def test_invalid_auth_config(script_runner, monkeypatch, fixture_dir):
+ monkeypatch.setenv("PYTHON_GITLAB_CFG", str(fixture_dir / "invalid_auth.cfg"))
+ ret = script_runner.run("gitlab", "--gitlab", "test", "project", "list")
+ assert not ret.success
+ assert "401" in ret.stderr
+
+
+def test_fields(gitlab_cli, project_file):
+ cmd = "-o", "json", "--fields", "default_branch", "project", "list"
+
+ ret = gitlab_cli(cmd)
+ assert ret.success
+
+ content = json.loads(ret.stdout.strip())
+ assert ["default_branch" in item for item in content]