diff options
author | Vlastimil Zíma <vlastimil.zima@nic.cz> | 2018-11-14 13:23:06 +0100 |
---|---|---|
committer | Vlastimil Zíma <vlastimil.zima@nic.cz> | 2018-11-14 13:23:06 +0100 |
commit | 50caa1b02bd39046dea48e00cbef3fa69f1d911f (patch) | |
tree | 82d9e5cd5d4a7f90f1686314e723a7a0fd4a550f | |
parent | 651ea5d17fcfc841748e611e45339527e3f398a9 (diff) | |
parent | 14e765802f7265e84f5db01625e73e7417e99c5d (diff) | |
download | openid-50caa1b02bd39046dea48e00cbef3fa69f1d911f.tar.gz |
Merge branch 'fix-examples'
-rw-r--r-- | examples/djopenid/README | 8 | ||||
-rw-r--r-- | examples/djopenid/consumer/tests.py | 56 | ||||
-rw-r--r-- | examples/djopenid/consumer/views.py | 4 | ||||
-rw-r--r-- | examples/djopenid/settings.py | 6 |
4 files changed, 65 insertions, 9 deletions
diff --git a/examples/djopenid/README b/examples/djopenid/README index e803648..1b42d37 100644 --- a/examples/djopenid/README +++ b/examples/djopenid/README @@ -12,9 +12,9 @@ SETUP 1. Install the OpenID library, version 2.0.0 or later. - 2. Install Django 0.95.1. + 2. Install Django. - If you find that the examples run on even newer versions of + If you find that the examples doesn't run on newer versions of Django, please let us know! 3. Modify djopenid/settings.py appropriately; you may wish to change @@ -23,11 +23,11 @@ SETUP 4. In examples/djopenid/ run: - python manage.py syncdb + python manage.py migrate 5. To run the example consumer or server, run - python manage.py runserver PORT + python manage.py runserver [PORT] where PORT is the port number on which to listen. diff --git a/examples/djopenid/consumer/tests.py b/examples/djopenid/consumer/tests.py new file mode 100644 index 0000000..c6b7b26 --- /dev/null +++ b/examples/djopenid/consumer/tests.py @@ -0,0 +1,56 @@ +"""Test the consumer.""" +from __future__ import unicode_literals + +import django +from django.test import TestCase +from openid.fetchers import setDefaultFetcher, HTTPResponse +from openid.yadis.constants import YADIS_CONTENT_TYPE + +# Allow django tests to run through discover +django.setup() + + +EXAMPLE_XRDS = b'''<?xml version="1.0" encoding="UTF-8"?> +<xrds:XRDS xmlns:xrds="xri://$xrds" xmlns="xri://$xrd*($v*2.0)"> + <XRD> + <Service priority="0"> + <Type>http://specs.openid.net/auth/2.0/server</Type> + <URI>http://example.com/</URI> + </Service> + </XRD> +</xrds:XRDS>''' + + +class FakeFetcher(object): + """Fake fetcher for tests.""" + + def __init__(self): + self.response = None + + def fetch(self, *args, **kwargs): + return self.response + + +class TestStartOpenID(TestCase): + """Test 'startOpenID' view.""" + + def setUp(self): + self.fetcher = FakeFetcher() + setDefaultFetcher(self.fetcher) + + def tearDown(self): + setDefaultFetcher(None) + + def test_get(self): + response = self.client.get('/consumer/') + self.assertContains(response, ' example consumer ') + + def test_post(self): + self.fetcher.response = HTTPResponse('http://example.com/', 200, {'content-type': YADIS_CONTENT_TYPE}, + EXAMPLE_XRDS) + + response = self.client.post('/consumer/', {'openid_identifier': 'http://example.com/'}) + + # Renders a POST form + self.assertContains(response, 'http://example.com/') + self.assertContains(response, 'openid.identity') diff --git a/examples/djopenid/consumer/views.py b/examples/djopenid/consumer/views.py index 6a8e2a4..0d2d821 100644 --- a/examples/djopenid/consumer/views.py +++ b/examples/djopenid/consumer/views.py @@ -116,8 +116,8 @@ def startOpenID(request): # Compute the trust root and return URL values to build the # redirect information. - trust_root = util.request.build_absolute_uri(reverse('consumer:index')) - return_to = util.request.build_absolute_uri(reverse('consumer:return_to')) + trust_root = request.build_absolute_uri(reverse('consumer:index')) + return_to = request.build_absolute_uri(reverse('consumer:return_to')) # Send the browser to the server either by sending a redirect # URL or by generating a POST form. diff --git a/examples/djopenid/settings.py b/examples/djopenid/settings.py index dad0aa1..fd1a2ff 100644 --- a/examples/djopenid/settings.py +++ b/examples/djopenid/settings.py @@ -24,6 +24,8 @@ DATABASES = { } SECRET_KEY = 'u^bw6lmsa6fah0$^lz-ct$)y7x7#ag92-z+y45-8!(jk0lkavy' +SESSION_ENGINE = 'django.contrib.sessions.backends.file' +SESSION_SERIALIZER = 'django.contrib.sessions.serializers.PickleSerializer' TEMPLATES = [ { @@ -34,10 +36,8 @@ TEMPLATES = [ ] MIDDLEWARE = ( - 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', - 'django.contrib.auth.middleware.AuthenticationMiddleware', - 'django.middleware.doc.XViewMiddleware', + 'django.middleware.common.CommonMiddleware', ) ROOT_URLCONF = 'djopenid.urls' |