Merge pull request #255 from q3aiml/fix-false-valued-settings
fix settings to support falsy valued overrides
This commit is contained in:
commit
784456f4b1
|
@ -203,7 +203,8 @@ def get(name, import_str=False):
|
||||||
default_value.update(value)
|
default_value.update(value)
|
||||||
value = default_value
|
value = default_value
|
||||||
else:
|
else:
|
||||||
value = value or default_value
|
if value is None:
|
||||||
|
value = default_value
|
||||||
value = import_from_str(value) if import_str else value
|
value = import_from_str(value) if import_str else value
|
||||||
|
|
||||||
return value
|
return value
|
||||||
|
|
|
@ -46,6 +46,20 @@ class IntrospectionTestCase(TestCase):
|
||||||
self.assertEqual(response.status_code, 200)
|
self.assertEqual(response.status_code, 200)
|
||||||
self.assertJSONEqual(force_text(response.content), {'active': False})
|
self.assertJSONEqual(force_text(response.content), {'active': False})
|
||||||
|
|
||||||
|
def _assert_active(self, response, **kwargs):
|
||||||
|
self.assertEqual(response.status_code, 200)
|
||||||
|
expected_content = {
|
||||||
|
'active': True,
|
||||||
|
'aud': self.resource.client_id,
|
||||||
|
'client_id': self.client.client_id,
|
||||||
|
'sub': str(self.user.pk),
|
||||||
|
'iat': int(self.now),
|
||||||
|
'exp': int(self.now + 600),
|
||||||
|
'iss': 'http://localhost:8000/openid',
|
||||||
|
}
|
||||||
|
expected_content.update(kwargs)
|
||||||
|
self.assertJSONEqual(force_text(response.content), expected_content)
|
||||||
|
|
||||||
def _make_request(self, **kwargs):
|
def _make_request(self, **kwargs):
|
||||||
url = reverse('oidc_provider:token-introspection')
|
url = reverse('oidc_provider:token-introspection')
|
||||||
data = {
|
data = {
|
||||||
|
@ -89,28 +103,16 @@ class IntrospectionTestCase(TestCase):
|
||||||
|
|
||||||
def test_valid_request_returns_default_properties(self):
|
def test_valid_request_returns_default_properties(self):
|
||||||
response = self._make_request()
|
response = self._make_request()
|
||||||
self.assertEqual(response.status_code, 200)
|
self._assert_active(response)
|
||||||
self.assertJSONEqual(force_text(response.content), {
|
|
||||||
'active': True,
|
|
||||||
'aud': self.resource.client_id,
|
|
||||||
'client_id': self.client.client_id,
|
|
||||||
'sub': str(self.user.pk),
|
|
||||||
'iat': int(self.now),
|
|
||||||
'exp': int(self.now + 600),
|
|
||||||
'iss': 'http://localhost:8000/openid',
|
|
||||||
})
|
|
||||||
|
|
||||||
@override_settings(OIDC_INTROSPECTION_PROCESSING_HOOK='oidc_provider.tests.app.utils.fake_introspection_processing_hook') # NOQA
|
@override_settings(OIDC_INTROSPECTION_PROCESSING_HOOK='oidc_provider.tests.app.utils.fake_introspection_processing_hook') # NOQA
|
||||||
def test_custom_introspection_hook_called_on_valid_request(self):
|
def test_custom_introspection_hook_called_on_valid_request(self):
|
||||||
response = self._make_request()
|
response = self._make_request()
|
||||||
self.assertEqual(response.status_code, 200)
|
self._assert_active(response, test_introspection_processing_hook=FAKE_RANDOM_STRING)
|
||||||
self.assertJSONEqual(force_text(response.content), {
|
|
||||||
'active': True,
|
@override_settings(OIDC_INTROSPECTION_VALIDATE_AUDIENCE_SCOPE=False)
|
||||||
'aud': self.resource.client_id,
|
def test_disable_audience_validation(self):
|
||||||
'client_id': self.client.client_id,
|
self.resource.scope = ['token_introspection']
|
||||||
'sub': str(self.user.pk),
|
self.resource.save()
|
||||||
'iat': int(self.now),
|
response = self._make_request()
|
||||||
'exp': int(self.now + 600),
|
self._assert_active(response)
|
||||||
'iss': 'http://localhost:8000/openid',
|
|
||||||
'test_introspection_processing_hook': FAKE_RANDOM_STRING
|
|
||||||
})
|
|
||||||
|
|
|
@ -23,3 +23,7 @@ class SettingsTest(TestCase):
|
||||||
key1 = settings.get('OIDC_UNAUTHENTICATED_SESSION_MANAGEMENT_KEY')
|
key1 = settings.get('OIDC_UNAUTHENTICATED_SESSION_MANAGEMENT_KEY')
|
||||||
key2 = settings.get('OIDC_UNAUTHENTICATED_SESSION_MANAGEMENT_KEY')
|
key2 = settings.get('OIDC_UNAUTHENTICATED_SESSION_MANAGEMENT_KEY')
|
||||||
self.assertEqual(key1, key2)
|
self.assertEqual(key1, key2)
|
||||||
|
|
||||||
|
@override_settings(OIDC_INTROSPECTION_VALIDATE_AUDIENCE_SCOPE=False)
|
||||||
|
def test_can_override_with_false_value(self):
|
||||||
|
self.assertFalse(settings.get('OIDC_INTROSPECTION_VALIDATE_AUDIENCE_SCOPE'))
|
||||||
|
|
Loading…
Reference in a new issue