|
1 | 1 | import pytest |
2 | 2 | import requests |
| 3 | +from requests import PreparedRequest |
3 | 4 |
|
4 | 5 | from gitlab import Gitlab |
| 6 | +from gitlab._backends import JobTokenAuth, OAuthTokenAuth, PrivateTokenAuth |
5 | 7 | from gitlab.config import GitlabConfigParser |
6 | 8 |
|
7 | 9 |
|
@@ -39,51 +41,64 @@ def test_invalid_auth_args(): |
39 | 41 |
|
40 | 42 | def test_private_token_auth(): |
41 | 43 | gl = Gitlab("http://localhost", private_token="private_token", api_version="4") |
| 44 | + p = PreparedRequest() |
| 45 | + p.prepare(url=gl.url, auth=gl._auth) |
42 | 46 | assert gl.private_token == "private_token" |
43 | 47 | assert gl.oauth_token is None |
44 | 48 | assert gl.job_token is None |
45 | | - assert gl._http_auth is None |
46 | | - assert "Authorization" not in gl.headers |
47 | | - assert gl.headers["PRIVATE-TOKEN"] == "private_token" |
48 | | - assert "JOB-TOKEN" not in gl.headers |
| 49 | + assert isinstance(gl._auth, PrivateTokenAuth) |
| 50 | + assert gl._auth.token == "private_token" |
| 51 | + assert p.headers["PRIVATE-TOKEN"] == "private_token" |
| 52 | + assert "JOB-TOKEN" not in p.headers |
| 53 | + assert "Authorization" not in p.headers |
49 | 54 |
|
50 | 55 |
|
51 | 56 | def test_oauth_token_auth(): |
52 | 57 | gl = Gitlab("http://localhost", oauth_token="oauth_token", api_version="4") |
| 58 | + p = PreparedRequest() |
| 59 | + p.prepare(url=gl.url, auth=gl._auth) |
53 | 60 | assert gl.private_token is None |
54 | 61 | assert gl.oauth_token == "oauth_token" |
55 | 62 | assert gl.job_token is None |
56 | | - assert gl._http_auth is None |
57 | | - assert gl.headers["Authorization"] == "Bearer oauth_token" |
58 | | - assert "PRIVATE-TOKEN" not in gl.headers |
59 | | - assert "JOB-TOKEN" not in gl.headers |
| 63 | + assert isinstance(gl._auth, OAuthTokenAuth) |
| 64 | + assert gl._auth.token == "oauth_token" |
| 65 | + assert p.headers["Authorization"] == "Bearer oauth_token" |
| 66 | + assert "PRIVATE-TOKEN" not in p.headers |
| 67 | + assert "JOB-TOKEN" not in p.headers |
60 | 68 |
|
61 | 69 |
|
62 | 70 | def test_job_token_auth(): |
63 | 71 | gl = Gitlab("http://localhost", job_token="CI_JOB_TOKEN", api_version="4") |
| 72 | + p = PreparedRequest() |
| 73 | + p.prepare(url=gl.url, auth=gl._auth) |
64 | 74 | assert gl.private_token is None |
65 | 75 | assert gl.oauth_token is None |
66 | 76 | assert gl.job_token == "CI_JOB_TOKEN" |
67 | | - assert gl._http_auth is None |
68 | | - assert "Authorization" not in gl.headers |
69 | | - assert "PRIVATE-TOKEN" not in gl.headers |
70 | | - assert gl.headers["JOB-TOKEN"] == "CI_JOB_TOKEN" |
| 77 | + assert isinstance(gl._auth, JobTokenAuth) |
| 78 | + assert gl._auth.token == "CI_JOB_TOKEN" |
| 79 | + assert p.headers["JOB-TOKEN"] == "CI_JOB_TOKEN" |
| 80 | + assert "PRIVATE-TOKEN" not in p.headers |
| 81 | + assert "Authorization" not in p.headers |
71 | 82 |
|
72 | 83 |
|
73 | 84 | def test_http_auth(): |
74 | 85 | gl = Gitlab( |
75 | 86 | "http://localhost", |
76 | | - private_token="private_token", |
77 | 87 | http_username="foo", |
78 | 88 | http_password="bar", |
79 | 89 | api_version="4", |
80 | 90 | ) |
81 | | - assert gl.private_token == "private_token" |
| 91 | + p = PreparedRequest() |
| 92 | + p.prepare(url=gl.url, auth=gl._auth) |
| 93 | + assert gl.private_token is None |
82 | 94 | assert gl.oauth_token is None |
83 | 95 | assert gl.job_token is None |
84 | | - assert isinstance(gl._http_auth, requests.auth.HTTPBasicAuth) |
85 | | - assert gl.headers["PRIVATE-TOKEN"] == "private_token" |
86 | | - assert "Authorization" not in gl.headers |
| 96 | + assert isinstance(gl._auth, requests.auth.HTTPBasicAuth) |
| 97 | + assert gl._auth.username == "foo" |
| 98 | + assert gl._auth.password == "bar" |
| 99 | + assert p.headers["Authorization"] == "Basic Zm9vOmJhcg==" |
| 100 | + assert "PRIVATE-TOKEN" not in p.headers |
| 101 | + assert "JOB-TOKEN" not in p.headers |
87 | 102 |
|
88 | 103 |
|
89 | 104 | @pytest.mark.parametrize( |
|
0 commit comments