summaryrefslogtreecommitdiff
path: root/tests/functional
diff options
context:
space:
mode:
Diffstat (limited to 'tests/functional')
-rw-r--r--tests/functional/cli/test_cli.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/functional/cli/test_cli.py b/tests/functional/cli/test_cli.py
index c4e76a7..2384563 100644
--- a/tests/functional/cli/test_cli.py
+++ b/tests/functional/cli/test_cli.py
@@ -1,8 +1,24 @@
import json
+import pytest
+import responses
+
from gitlab import __version__
+@pytest.fixture
+def resp_get_project():
+ with responses.RequestsMock() as rsps:
+ rsps.add(
+ method=responses.GET,
+ url="https://gitlab.com/api/v4/projects/1",
+ json={"name": "name", "path": "test-path", "id": 1},
+ content_type="application/json",
+ status=200,
+ )
+ yield rsps
+
+
def test_main_entrypoint(script_runner, gitlab_config):
ret = script_runner.run("python", "-m", "gitlab", "--config-file", gitlab_config)
assert ret.returncode == 2
@@ -13,6 +29,29 @@ def test_version(script_runner):
assert ret.stdout.strip() == __version__
+@pytest.mark.script_launch_mode("inprocess")
+def test_defaults_to_gitlab_com(script_runner, resp_get_project):
+ # Runs in-process to intercept requests to gitlab.com
+ ret = script_runner.run("gitlab", "project", "get", "--id", "1")
+ assert ret.success
+ assert "id: 1" in ret.stdout
+
+
+def test_env_config_missing_file_raises(script_runner, monkeypatch):
+ monkeypatch.setenv("PYTHON_GITLAB_CFG", "non-existent")
+ ret = script_runner.run("gitlab", "project", "list")
+ assert not ret.success
+ assert ret.stderr.startswith("Cannot read config from PYTHON_GITLAB_CFG")
+
+
+def test_arg_config_missing_file_raises(script_runner):
+ ret = script_runner.run(
+ "gitlab", "--config-file", "non-existent", "project", "list"
+ )
+ assert not ret.success
+ assert ret.stderr.startswith("Cannot read config from file")
+
+
def test_invalid_config(script_runner):
ret = script_runner.run("gitlab", "--gitlab", "invalid")
assert not ret.success