summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNejc Habjan <nejc.habjan@siemens.com>2022-07-22 22:49:38 +0200
committerJohn Villalovos <john@sodarock.com>2022-07-22 14:28:11 -0700
commit1ef70188da1e29cd8ba95bf58c994ba7dd3010c5 (patch)
tree01bdb9a352cfdd2bf9c25347678962a689f6c6e5
parentac46c1cb291c03ad14bc76f5f16c9f98f2a5a82d (diff)
downloadgitlab-1ef70188da1e29cd8ba95bf58c994ba7dd3010c5.tar.gz
fix(config): raise error when gitlab id provided but no config section found
-rw-r--r--gitlab/config.py6
-rw-r--r--tests/unit/test_gitlab.py7
2 files changed, 12 insertions, 1 deletions
diff --git a/gitlab/config.py b/gitlab/config.py
index 2fe058a..dc577fc 100644
--- a/gitlab/config.py
+++ b/gitlab/config.py
@@ -137,6 +137,12 @@ class GitlabConfigParser:
_config = configparser.ConfigParser()
_config.read(self._files)
+ if self.gitlab_id and not _config.has_section(self.gitlab_id):
+ raise GitlabDataError(
+ f"A gitlab id was provided ({self.gitlab_id}) "
+ "but no config section found"
+ )
+
if self.gitlab_id is None:
try:
self.gitlab_id = _config.get("global", "default")
diff --git a/tests/unit/test_gitlab.py b/tests/unit/test_gitlab.py
index 7b6b438..203f123 100644
--- a/tests/unit/test_gitlab.py
+++ b/tests/unit/test_gitlab.py
@@ -25,7 +25,7 @@ import pytest
import responses
import gitlab
-from gitlab.config import GitlabConfigMissingError
+from gitlab.config import GitlabConfigMissingError, GitlabDataError
from tests.unit import helpers
localhost = "http://localhost"
@@ -305,6 +305,11 @@ def test_gitlab_from_config_without_files_raises():
gitlab.Gitlab.from_config("non-existing")
+def test_gitlab_from_config_with_wrong_gitlab_id_raises(default_config):
+ with pytest.raises(GitlabDataError, match="non-existing"):
+ gitlab.Gitlab.from_config("non-existing", [default_config])
+
+
def test_gitlab_subclass_from_config(default_config):
class MyGitlab(gitlab.Gitlab):
pass