~matiasb/django-openid-auth/py3-migration

« back to all changes in this revision

Viewing changes to django_openid_auth/tests/test_views.py

  • Committer: Anthony Lenton
  • Date: 2012-06-01 16:45:34 UTC
  • mfrom: (89.1.2 race-condition)
  • Revision ID: anthony.lenton@canonical.com-20120601164534-rp67u89u7c3e0yox
[r=mhall],[bug=1007281] Strip non-alphanumeric characters out of email for better username suggestions.

Show diffs side-by-side

added added

removed removed

Lines of Context:
42
42
from openid.oidutil import importElementTree
43
43
from openid.server.server import BROWSER_REQUEST_MODES, ENCODE_URL, Server
44
44
from openid.store.memstore import MemoryStore
45
 
from openid.message import OPENID1_URL_LIMIT, IDENTIFIER_SELECT
 
45
from openid.message import IDENTIFIER_SELECT
46
46
 
47
47
from django_openid_auth import teams
48
48
from django_openid_auth.models import UserOpenID
50
50
    sanitise_redirect_url, 
51
51
    make_consumer,
52
52
)
53
 
from django_openid_auth.auth import OpenIDBackend
54
53
from django_openid_auth.signals import openid_login_complete
55
54
from django_openid_auth.store import DjangoOpenIDStore
56
55
from django_openid_auth.exceptions import (
185
184
        self.old_physical_multifactor = getattr(settings, 'OPENID_PHYSICAL_MULTIFACTOR_REQUIRED', False)
186
185
        self.old_login_render_failure = getattr(settings, 'OPENID_RENDER_FAILURE', None)
187
186
        self.old_consumer_complete = Consumer.complete
 
187
        self.old_openid_use_email_for_username = getattr(settings,
 
188
            'OPENID_USE_EMAIL_FOR_USERNAME', False)
188
189
 
189
190
        self.old_required_fields = getattr(
190
191
            settings, 'OPENID_SREG_REQUIRED_FIELDS', [])
198
199
        settings.OPENID_FOLLOW_RENAMES = False
199
200
        settings.OPENID_PHYSICAL_MULTIFACTOR_REQUIRED = False
200
201
        settings.OPENID_SREG_REQUIRED_FIELDS = []
 
202
        settings.OPENID_USE_EMAIL_FOR_USERNAME = False
201
203
 
202
204
    def tearDown(self):
203
205
        settings.LOGIN_REDIRECT_URL = self.old_login_redirect_url
212
214
        settings.OPENID_RENDER_FAILURE = self.old_login_render_failure
213
215
        Consumer.complete = self.old_consumer_complete
214
216
        settings.OPENID_SREG_REQUIRED_FIELDS = self.old_required_fields
 
217
        settings.OPENID_USE_EMAIL_FOR_USERNAME = self.old_openid_use_email_for_username
215
218
 
216
219
        setDefaultFetcher(None)
217
220
        super(RelyingPartyTests, self).tearDown()
569
572
        self.assertEquals(user.last_name, 'User')
570
573
        self.assertEquals(user.email, 'foo@example.com')
571
574
 
 
575
    def test_login_without_nickname_with_email_suggestion(self):
 
576
        settings.OPENID_CREATE_USERS = True
 
577
        settings.OPENID_USE_EMAIL_FOR_USERNAME = True
 
578
 
 
579
        openid_req = {'openid_identifier': 'http://example.com/identity',
 
580
               'next': '/getuser/'}
 
581
        openid_resp =  {'nickname': '', 'fullname': 'Openid User',
 
582
                 'email': 'foo@example.com'}
 
583
        self._do_user_login(openid_req, openid_resp)
 
584
        response = self.client.get('/getuser/')
 
585
 
 
586
        # username defaults to a munged version of the email
 
587
        self.assertEquals(response.content, 'fooexamplecom')
 
588
 
572
589
    def test_login_duplicate_username_numbering(self):
573
590
        settings.OPENID_FOLLOW_RENAMES = False
574
591
        settings.OPENID_CREATE_USERS = True