(sap) fix after review

This commit is contained in:
Vasilisa Parshikova 2026-02-04 15:40:21 +04:00 committed by Sameer Kankute
parent 3736812c64
commit 85d9569ead
No known key found for this signature in database
2 changed files with 15 additions and 3 deletions

View file

@ -184,7 +184,7 @@ def resolve_resource_group(sources: List[Source]) -> Optional[str]:
return value
return rg_cred.default
def fetch_credentials(service_key: Optional[str, dict] = None, profile: Optional[str] = None, **kwargs) -> Dict[str, str]:
def fetch_credentials(service_key: Optional[Union[str, dict]] = None, profile: Optional[str] = None, **kwargs) -> Dict[str, str]:
"""
Resolution order per key:
kwargs
@ -200,9 +200,10 @@ def fetch_credentials(service_key: Optional[str, dict] = None, profile: Optional
vcap_service = _get_vcap_service(VCAP_AICORE_SERVICE_NAME)
sources = [
Source("service key", lambda cv: _get_nested(service_key, cv.vcap_key if cv.vcap_key else (cv.name,))), # type: ignore[arg-type]
Source("kwargs",
lambda cv: _str_or_none(kwargs.get(cv.name))),
Source("service key",
lambda cv: _get_nested(service_key, cv.vcap_key if cv.vcap_key else (cv.name,))), # type: ignore[arg-type]
Source("environment variables",
lambda cv: _str_or_none(os.environ.get(f'AICORE_{cv.name.upper()}'))),
Source("config file",

View file

@ -37,7 +37,7 @@ def test_sap_fetch_creds_from_env_service_key(monkeypatch):
creds = fetch_credentials()
assert creds == expected_creds
def test_sap_fetch_creds_from_api_key_service_key(monkeypatch):
def test_sap_fetch_creds_from_arg_service_key(monkeypatch):
monkeypatch.setenv("AICORE_HOME", 'notexist')
creds = fetch_credentials(service_key=json.dumps(mock_sap_service_key_dict))
assert creds == expected_creds
@ -64,3 +64,14 @@ def test_fetch_creds_from_env(monkeypatch):
assert creds['auth_url'] == "env-auth-url/oauth/token"
assert creds['base_url'] == "env-base-url/v2"
assert creds['resource_group'] == "env-resource-group"
def test_creds_priority_order(monkeypatch):
monkeypatch.setenv("AICORE_HOME", 'notexist')
monkeypatch.setenv("AICORE_CLIENT_ID", "env-client-id")
monkeypatch.setenv("AICORE_CLIENT_SECRET", "env-client-secret")
monkeypatch.setenv("AICORE_AUTH_URL", "env-auth-url")
monkeypatch.setenv("AICORE_BASE_URL", "env-base-url")
monkeypatch.setenv("AICORE_RESOURCE_GROUP", "env-resource-group")
creds = fetch_credentials(service_key=json.dumps(mock_sap_service_key_dict))
assert creds['client_id'] == "mockclientid"
assert creds['resource_group'] == "env-resource-group"