From 613cef25742ab30a5359567da72c214945673b21 Mon Sep 17 00:00:00 2001 From: peppelinux Date: Sat, 15 May 2021 23:13:11 +0200 Subject: [PATCH] fix: test 00 and code -> map is a primitive, must not be overloaded --- src/oidcop/endpoint_context.py | 4 +++- src/oidcop/scopes.py | 13 ++++++++----- src/oidcop/session/claims.py | 4 +++- tests/op_config.json | 2 +- tests/test_07_userinfo.py | 8 ++++---- 5 files changed, 19 insertions(+), 12 deletions(-) diff --git a/src/oidcop/endpoint_context.py b/src/oidcop/endpoint_context.py index 43917bfb..a00668cb 100755 --- a/src/oidcop/endpoint_context.py +++ b/src/oidcop/endpoint_context.py @@ -328,7 +328,9 @@ def create_providerinfo(self, capabilities): _provider_info["jwks_uri"] = self.jwks_uri if "scopes_supported" not in _provider_info: - _provider_info["scopes_supported"] = [s for s in self.scope2claims.keys()] + _provider_info["scopes_supported"] = [ + s for s in self.scope2claims.keys() + ] if "claims_supported" not in _provider_info: _provider_info["claims_supported"] = STANDARD_CLAIMS[:] diff --git a/src/oidcop/scopes.py b/src/oidcop/scopes.py index 80166b99..b12e4db4 100644 --- a/src/oidcop/scopes.py +++ b/src/oidcop/scopes.py @@ -33,19 +33,22 @@ def available_scopes(endpoint_context): return [s for s in endpoint_context.scope2claims.keys()] -def convert_scopes2claims(scopes, allowed_claims=None, map=None): - if map is None: - map = SCOPE2CLAIMS +def convert_scopes2claims(scopes, allowed_claims=None, scope2claim_map=None): + scope2claim_map = scope2claim_map or SCOPE2CLAIMS res = {} if allowed_claims is None: for scope in scopes: - claims = {name: None for name in map[scope]} + claims = {name: None for name in scope2claim_map[scope]} res.update(claims) else: for scope in scopes: try: - claims = {name: None for name in map[scope] if name in allowed_claims} + claims = { + name: None + for name in scope2claim_map[scope] + if name in allowed_claims + } res.update(claims) except KeyError: continue diff --git a/src/oidcop/session/claims.py b/src/oidcop/session/claims.py index 628321de..ba7e8484 100755 --- a/src/oidcop/session/claims.py +++ b/src/oidcop/session/claims.py @@ -99,7 +99,9 @@ def get_claims(self, session_id: str, scopes: str, usage: str) -> dict: client_id, _context, scopes ) - _claims = convert_scopes2claims(_scopes, map=_context.scope2claims) + _claims = convert_scopes2claims( + _scopes, scope2claim_map=_context.scope2claims + ) claims.update(_claims) # Bring in claims specification from the authorization request diff --git a/tests/op_config.json b/tests/op_config.json index 1e5165f8..97ba89de 100644 --- a/tests/op_config.json +++ b/tests/op_config.json @@ -222,7 +222,7 @@ "id_token": { "class": "oidcop.id_token.IDToken", "kwargs": { - "default_claims": { + "base_claims": { "email": { "essential": true }, diff --git a/tests/test_07_userinfo.py b/tests/test_07_userinfo.py index 42513f16..4ab0394e 100644 --- a/tests/test_07_userinfo.py +++ b/tests/test_07_userinfo.py @@ -131,18 +131,18 @@ def test_custom_scopes(): _available_claims.append("eduperson_scoped_affiliation") assert set( - convert_scopes2claims(["email"], _available_claims, map=_scopes).keys() + convert_scopes2claims(["email"], _available_claims, scope2claim_map=_scopes).keys() ) == {"email", "email_verified",} assert set( - convert_scopes2claims(["address"], _available_claims, map=_scopes).keys() + convert_scopes2claims(["address"], _available_claims, scope2claim_map=_scopes).keys() ) == {"address"} assert set( - convert_scopes2claims(["phone"], _available_claims, map=_scopes).keys() + convert_scopes2claims(["phone"], _available_claims, scope2claim_map=_scopes).keys() ) == {"phone_number", "phone_number_verified",} assert set( convert_scopes2claims( - ["research_and_scholarship"], _available_claims, map=_scopes + ["research_and_scholarship"], _available_claims, scope2claim_map=_scopes ).keys() ) == { "name",