summaryrefslogtreecommitdiff
path: root/tests/functional/cli/test_cli.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/functional/cli/test_cli.py')
-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]