diff options
author | Nejc Habjan <hab.nejc@gmail.com> | 2021-02-12 00:47:32 +0100 |
---|---|---|
committer | John Villalovos <john@sodarock.com> | 2022-01-02 14:35:39 -0800 |
commit | ca58008607385338aaedd14a58adc347fa1a41a0 (patch) | |
tree | 3597e79d38ad47a0841c5a773950897863a87490 /tests/unit/test_gitlab_auth.py | |
parent | e19e4d7cdf9cd04359cd3e95036675c81f4e1dc5 (diff) | |
download | gitlab-ca58008607385338aaedd14a58adc347fa1a41a0.tar.gz |
feat(cli): allow options from args and environment variables
BREAKING-CHANGE: The gitlab CLI will now accept CLI arguments
and environment variables for its global options in addition
to configuration file options. This may change behavior for
some workflows such as running inside GitLab CI and with
certain environment variables configured.
Diffstat (limited to 'tests/unit/test_gitlab_auth.py')
-rw-r--r-- | tests/unit/test_gitlab_auth.py | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/tests/unit/test_gitlab_auth.py b/tests/unit/test_gitlab_auth.py index 314fbed..8d6677f 100644 --- a/tests/unit/test_gitlab_auth.py +++ b/tests/unit/test_gitlab_auth.py @@ -2,6 +2,7 @@ import pytest import requests from gitlab import Gitlab +from gitlab.config import GitlabConfigParser def test_invalid_auth_args(): @@ -83,3 +84,116 @@ def test_http_auth(): assert isinstance(gl._http_auth, requests.auth.HTTPBasicAuth) assert gl.headers["PRIVATE-TOKEN"] == "private_token" assert "Authorization" not in gl.headers + + +@pytest.mark.parametrize( + "options,config,expected_private_token,expected_oauth_token,expected_job_token", + [ + ( + { + "private_token": "options-private-token", + "oauth_token": "options-oauth-token", + "job_token": "options-job-token", + }, + { + "private_token": "config-private-token", + "oauth_token": "config-oauth-token", + "job_token": "config-job-token", + }, + "options-private-token", + None, + None, + ), + ( + { + "private_token": None, + "oauth_token": "options-oauth-token", + "job_token": "options-job-token", + }, + { + "private_token": "config-private-token", + "oauth_token": "config-oauth-token", + "job_token": "config-job-token", + }, + "config-private-token", + None, + None, + ), + ( + { + "private_token": None, + "oauth_token": None, + "job_token": "options-job-token", + }, + { + "private_token": "config-private-token", + "oauth_token": "config-oauth-token", + "job_token": "config-job-token", + }, + "config-private-token", + None, + None, + ), + ( + { + "private_token": None, + "oauth_token": None, + "job_token": None, + }, + { + "private_token": "config-private-token", + "oauth_token": "config-oauth-token", + "job_token": "config-job-token", + }, + "config-private-token", + None, + None, + ), + ( + { + "private_token": None, + "oauth_token": None, + "job_token": None, + }, + { + "private_token": None, + "oauth_token": "config-oauth-token", + "job_token": "config-job-token", + }, + None, + "config-oauth-token", + None, + ), + ( + { + "private_token": None, + "oauth_token": None, + "job_token": None, + }, + { + "private_token": None, + "oauth_token": None, + "job_token": "config-job-token", + }, + None, + None, + "config-job-token", + ), + ], +) +def test_merge_auth( + options, + config, + expected_private_token, + expected_oauth_token, + expected_job_token, +): + cp = GitlabConfigParser() + cp.private_token = config["private_token"] + cp.oauth_token = config["oauth_token"] + cp.job_token = config["job_token"] + + private_token, oauth_token, job_token = Gitlab._merge_auth(options, cp) + assert private_token == expected_private_token + assert oauth_token == expected_oauth_token + assert job_token == expected_job_token |