|
46 | 46 | TEST_CREDENTIALS = "client:secret"
|
47 | 47 | TEST_AUTH_URL = "https://auth-endpoint/"
|
48 | 48 | TEST_TOKEN = "some_jwt_token"
|
| 49 | +TEST_AUDIENCE = "test_audience" |
| 50 | +TEST_RESOURCE = "test_resource" |
| 51 | + |
49 | 52 | TEST_HEADERS = {
|
50 | 53 | "Content-type": "application/json",
|
51 | 54 | "X-Client-Version": "0.14.1",
|
@@ -136,6 +139,48 @@ def test_token_200_without_optional_fields(rest_mock: Mocker) -> None:
|
136 | 139 | )
|
137 | 140 |
|
138 | 141 |
|
| 142 | +def test_token_with_optional_oauth_params(rest_mock: Mocker) -> None: |
| 143 | + mock_request = rest_mock.post( |
| 144 | + f"{TEST_URI}v1/oauth/tokens", |
| 145 | + json={ |
| 146 | + "access_token": TEST_TOKEN, |
| 147 | + "token_type": "Bearer", |
| 148 | + "expires_in": 86400, |
| 149 | + "issued_token_type": "urn:ietf:params:oauth:token-type:access_token", |
| 150 | + }, |
| 151 | + status_code=200, |
| 152 | + request_headers=OAUTH_TEST_HEADERS, |
| 153 | + ) |
| 154 | + assert ( |
| 155 | + RestCatalog( |
| 156 | + "rest", uri=TEST_URI, credential=TEST_CREDENTIALS, audience=TEST_AUDIENCE, resource=TEST_RESOURCE |
| 157 | + )._session.headers["Authorization"] |
| 158 | + == f"Bearer {TEST_TOKEN}" |
| 159 | + ) |
| 160 | + assert TEST_AUDIENCE in mock_request.last_request.text |
| 161 | + assert TEST_RESOURCE in mock_request.last_request.text |
| 162 | + |
| 163 | + |
| 164 | +def test_token_with_optional_oauth_params_as_empty(rest_mock: Mocker) -> None: |
| 165 | + mock_request = rest_mock.post( |
| 166 | + f"{TEST_URI}v1/oauth/tokens", |
| 167 | + json={ |
| 168 | + "access_token": TEST_TOKEN, |
| 169 | + "token_type": "Bearer", |
| 170 | + "expires_in": 86400, |
| 171 | + "issued_token_type": "urn:ietf:params:oauth:token-type:access_token", |
| 172 | + }, |
| 173 | + status_code=200, |
| 174 | + request_headers=OAUTH_TEST_HEADERS, |
| 175 | + ) |
| 176 | + assert ( |
| 177 | + RestCatalog("rest", uri=TEST_URI, credential=TEST_CREDENTIALS, audience="", resource="")._session.headers["Authorization"] |
| 178 | + == f"Bearer {TEST_TOKEN}" |
| 179 | + ) |
| 180 | + assert TEST_AUDIENCE not in mock_request.last_request.text |
| 181 | + assert TEST_RESOURCE not in mock_request.last_request.text |
| 182 | + |
| 183 | + |
139 | 184 | def test_token_200_w_auth_url(rest_mock: Mocker) -> None:
|
140 | 185 | rest_mock.post(
|
141 | 186 | TEST_AUTH_URL,
|
|
0 commit comments