diff --git a/README.rst b/README.rst index 5368202..fa3719b 100644 --- a/README.rst +++ b/README.rst @@ -2,13 +2,15 @@ Django OIDC Provider #################### -OpenID Connect Provider implementation for Django. Read docs for more info. https://github.com/juanifioren/django-oidc-provider/wiki +OpenID Connect Provider implementation for Django. + +Read docs for more info. https://github.com/juanifioren/django-oidc-provider/wiki ************* Running tests ************* -Just run them as normal Django tests. +You need a Django project properly configured with the package. Then just run tests as normal. .. code:: diff --git a/oidc_provider/tests/test_code_flow.py b/oidc_provider/tests/test_authorization_code_flow.py similarity index 78% rename from oidc_provider/tests/test_code_flow.py rename to oidc_provider/tests/test_authorization_code_flow.py index d43ad39..8d118bf 100644 --- a/oidc_provider/tests/test_code_flow.py +++ b/oidc_provider/tests/test_authorization_code_flow.py @@ -9,7 +9,7 @@ from oidc_provider.views import * import urllib -class CodeFlowTestCase(TestCase): +class AuthorizationCodeFlowTestCase(TestCase): def setUp(self): self.factory = RequestFactory() @@ -99,7 +99,16 @@ class CodeFlowTestCase(TestCase): self.assertEqual(is_next_ok, True) def test_authorize_user_consent(self): - url = self._create_authorize_url(response_type='code') + """ + Once the End-User is authenticated, the Authorization Server MUST + obtain an authorization decision before releasing information to + the Client. + + See: http://openid.net/specs/openid-connect-core-1_0.html#Consent + """ + response_type = 'code' + + url = self._create_authorize_url(response_type=response_type) request = self.factory.get(url) # Simulate that the user is logged. @@ -107,4 +116,18 @@ class CodeFlowTestCase(TestCase): response = AuthorizeView.as_view()(request) - import pdb; pdb.set_trace() \ No newline at end of file + # Check if hidden inputs exists in the form, also + # check if their values are valid. + + input_html = '' + + to_check = { + 'client_id': self.client.client_id, + 'redirect_uri': self.client.default_redirect_uri, + 'response_type': response_type, + } + + for key, value in to_check.iteritems(): + is_input_ok = input_html.format(key, value) in response.content + self.assertEqual(is_input_ok, True, + msg='Hidden input for "'+key+'" fails.') diff --git a/setup.py b/setup.py index 6b9594a..1638741 100644 --- a/setup.py +++ b/setup.py @@ -18,6 +18,9 @@ setup( url='http://github.com/juanifioren/django-oidc-provider', author='Juan Ignacio Fiorentino', author_email='juanifioren@gmail.com', + + tests_require=[], + classifiers=[ 'Environment :: Web Environment', 'Framework :: Django', @@ -33,4 +36,4 @@ setup( install_requires=[ 'pyjwt==0.3.1', ], -) \ No newline at end of file +)