Skip to content

Commit 9874dd7

Browse files
committed
Code review
1 parent e77340e commit 9874dd7

File tree

2 files changed

+25
-18
lines changed

2 files changed

+25
-18
lines changed

openeo/rest/connection.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import os
1010
import shlex
1111
import urllib.parse
12-
import uuid
1312
import warnings
1413
from collections import OrderedDict
1514
from pathlib import Path, PurePosixPath
@@ -225,15 +224,15 @@ def list_auth_providers(self) -> list[dict]:
225224
for provider in data.get("providers", []):
226225
provider["type"] = "oidc"
227226
providers.append(provider)
228-
except OpenEoApiError:
229-
pass
227+
except OpenEoApiError as e:
228+
_log.warning(f"Unable to load the OpenID Connect provider list: {e.message}")
230229

231230
# Add Basic provider
232231
basic_path = "/credentials/basic"
233232
if cap.supports_endpoint(basic_path, method="GET"):
234233
providers.append(
235234
{
236-
"id": uuid.uuid4().hex,
235+
"id": basic_path,
237236
"issuer": self.build_url(basic_path),
238237
"type": "basic",
239238
"title": "Internal",

tests/rest/test_connection.py

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -768,16 +768,7 @@ def test_create_connection_lazy_refresh_token_store(requests_mock):
768768

769769

770770
def test_list_auth_providers(requests_mock, api_version):
771-
requests_mock.get(
772-
API_URL,
773-
json={
774-
"api_version": api_version,
775-
"endpoints": [
776-
{"methods": ["GET"], "path": "/credentials/basic"},
777-
{"methods": ["GET"], "path": "/credentials/oidc"},
778-
],
779-
},
780-
)
771+
requests_mock.get(API_URL, json=build_capabilities(api_version=api_version))
781772
requests_mock.get(
782773
API_URL + "credentials/oidc",
783774
json={
@@ -804,20 +795,37 @@ def test_list_auth_providers(requests_mock, api_version):
804795
assert p2["issuer"] == "https://other.example"
805796
assert p2["title"] == "Other"
806797

807-
basic = next(filter(lambda x: x["type"] == "basic", providers), None)
798+
basic = next(filter(lambda x: x["id"] == "/credentials/basic", providers), None)
808799
assert isinstance(basic, dict)
809-
assert isinstance(basic["id"], str)
810-
assert len(basic["id"]) > 0
800+
assert basic["type"] == "basic"
811801
assert basic["issuer"] == API_URL + "credentials/basic"
812802
assert basic["title"] == "Internal"
813803

814804

815805
def test_list_auth_providers_empty(requests_mock, api_version):
816-
requests_mock.get(API_URL, json={"api_version": api_version, "endpoints": []})
806+
requests_mock.get(
807+
API_URL,
808+
json=build_capabilities(api_version=api_version, basic_auth=False, oidc_auth=False),
809+
)
810+
811+
conn = Connection(API_URL)
812+
providers = conn.list_auth_providers()
813+
assert len(providers) == 0
814+
815+
816+
def test_list_auth_providers_invalid(requests_mock, api_version, caplog):
817+
requests_mock.get(API_URL, json=build_capabilities(api_version=api_version, basic_auth=False))
818+
error_message = "Maintenance ongoing"
819+
requests_mock.get(
820+
API_URL + "credentials/oidc",
821+
status_code=500,
822+
json={"code": "Internal", "message": error_message},
823+
)
817824

818825
conn = Connection(API_URL)
819826
providers = conn.list_auth_providers()
820827
assert len(providers) == 0
828+
assert f"Unable to load the OpenID Connect provider list: {error_message}" in caplog.messages
821829

822830

823831
def test_authenticate_basic_no_support(requests_mock, api_version):

0 commit comments

Comments
 (0)