From 155b4598b02091684bc7d21c2b0548362d62e3cf Mon Sep 17 00:00:00 2001 From: hpool Date: Wed, 9 Nov 2016 19:19:31 +0900 Subject: [PATCH 1/2] Add test for STANDARD_CLAIMS values --- oidc_provider/tests/test_claims.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/oidc_provider/tests/test_claims.py b/oidc_provider/tests/test_claims.py index ae105a1..1748f19 100644 --- a/oidc_provider/tests/test_claims.py +++ b/oidc_provider/tests/test_claims.py @@ -1,6 +1,6 @@ from django.test import TestCase -from oidc_provider.lib.claims import ScopeClaims +from oidc_provider.lib.claims import ScopeClaims, STANDARD_CLAIMS from oidc_provider.tests.app.utils import create_fake_user, create_fake_client, create_fake_token @@ -13,6 +13,13 @@ class ClaimsTestCase(TestCase): self.token = create_fake_token(self.user, self.scopes, self.client) self.scopeClaims = ScopeClaims(self.token) + def test_empty_standard_claims(self): + for v in [v for k, v in STANDARD_CLAIMS.items() if k != 'address']: + self.assertEqual(v, '') + + for v in STANDARD_CLAIMS['address'].values(): + self.assertEqual(v, '') + def test_clean_dic(self): """ assert that _clean_dic function returns a clean dictionnary (no empty claims) """ From acc5b408d1ffe5446846ec8150206f4c186c438c Mon Sep 17 00:00:00 2001 From: hpool Date: Wed, 9 Nov 2016 19:21:56 +0900 Subject: [PATCH 2/2] Fix a bug that the value of STANDARD_CLAIMS is updated --- oidc_provider/lib/claims.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/oidc_provider/lib/claims.py b/oidc_provider/lib/claims.py index d4398c0..6c80bc8 100644 --- a/oidc_provider/lib/claims.py +++ b/oidc_provider/lib/claims.py @@ -1,3 +1,5 @@ +import copy + from django.utils.translation import ugettext as _ from oidc_provider import settings @@ -16,7 +18,8 @@ class ScopeClaims(object): def __init__(self, token): self.user = token.user - self.userinfo = settings.get('OIDC_USERINFO', import_str=True)(STANDARD_CLAIMS, self.user) + claims = copy.deepcopy(STANDARD_CLAIMS) + self.userinfo = settings.get('OIDC_USERINFO', import_str=True)(claims, self.user) self.scopes = token.scope self.client = token.client