mirror of
https://github.com/Tivix/django-rest-auth.git
synced 2024-11-26 02:53:46 +03:00
Merge pull request #75 from Tivix/django-1.8
Django 1.8 compatibility fixes
...lecisz malina ❗
This commit is contained in:
commit
92ca2e33d6
|
@ -6,10 +6,13 @@ env:
|
|||
- DJANGO=1.5.12
|
||||
- DJANGO=1.6.11
|
||||
- DJANGO=1.7.7
|
||||
- DJANGO=1.8
|
||||
matrix:
|
||||
exclude:
|
||||
- python: "2.6"
|
||||
env: DJANGO=1.7.7
|
||||
- python: "2.6"
|
||||
env: DJANGO=1.8
|
||||
install:
|
||||
- pip install -q Django==$DJANGO --use-mirrors
|
||||
- pip install coveralls
|
||||
|
|
103
rest_auth/django_test_urls.py
Normal file
103
rest_auth/django_test_urls.py
Normal file
|
@ -0,0 +1,103 @@
|
|||
# Moved in Django 1.8 from django to tests/auth_tests/urls.py
|
||||
|
||||
from django.conf.urls import include, url
|
||||
from django.contrib import admin
|
||||
from django.contrib.auth import views
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.contrib.auth.forms import AuthenticationForm
|
||||
from django.contrib.auth.urls import urlpatterns
|
||||
from django.contrib.messages.api import info
|
||||
from django.http import HttpRequest, HttpResponse
|
||||
from django.shortcuts import render
|
||||
from django.template import RequestContext, Template
|
||||
from django.views.decorators.cache import never_cache
|
||||
|
||||
|
||||
class CustomRequestAuthenticationForm(AuthenticationForm):
|
||||
def __init__(self, request, *args, **kwargs):
|
||||
assert isinstance(request, HttpRequest)
|
||||
super(CustomRequestAuthenticationForm, self).__init__(request, *args, **kwargs)
|
||||
|
||||
|
||||
@never_cache
|
||||
def remote_user_auth_view(request):
|
||||
"Dummy view for remote user tests"
|
||||
t = Template("Username is {{ user }}.")
|
||||
c = RequestContext(request, {})
|
||||
return HttpResponse(t.render(c))
|
||||
|
||||
|
||||
def auth_processor_no_attr_access(request):
|
||||
render(request, 'context_processors/auth_attrs_no_access.html')
|
||||
# *After* rendering, we check whether the session was accessed
|
||||
return render(request,
|
||||
'context_processors/auth_attrs_test_access.html',
|
||||
{'session_accessed': request.session.accessed})
|
||||
|
||||
|
||||
def auth_processor_attr_access(request):
|
||||
render(request, 'context_processors/auth_attrs_access.html')
|
||||
return render(request,
|
||||
'context_processors/auth_attrs_test_access.html',
|
||||
{'session_accessed': request.session.accessed})
|
||||
|
||||
|
||||
def auth_processor_user(request):
|
||||
return render(request, 'context_processors/auth_attrs_user.html')
|
||||
|
||||
|
||||
def auth_processor_perms(request):
|
||||
return render(request, 'context_processors/auth_attrs_perms.html')
|
||||
|
||||
|
||||
def auth_processor_perm_in_perms(request):
|
||||
return render(request, 'context_processors/auth_attrs_perm_in_perms.html')
|
||||
|
||||
|
||||
def auth_processor_messages(request):
|
||||
info(request, "Message 1")
|
||||
return render(request, 'context_processors/auth_attrs_messages.html')
|
||||
|
||||
|
||||
def userpage(request):
|
||||
pass
|
||||
|
||||
|
||||
def custom_request_auth_login(request):
|
||||
return views.login(request, authentication_form=CustomRequestAuthenticationForm)
|
||||
|
||||
# special urls for auth test cases
|
||||
urlpatterns += [
|
||||
url(r'^logout/custom_query/$', views.logout, dict(redirect_field_name='follow')),
|
||||
url(r'^logout/next_page/$', views.logout, dict(next_page='/somewhere/')),
|
||||
url(r'^logout/next_page/named/$', views.logout, dict(next_page='password_reset')),
|
||||
url(r'^remote_user/$', remote_user_auth_view),
|
||||
url(r'^password_reset_from_email/$', views.password_reset, dict(from_email='staffmember@example.com')),
|
||||
url(r'^password_reset/custom_redirect/$', views.password_reset, dict(post_reset_redirect='/custom/')),
|
||||
url(r'^password_reset/custom_redirect/named/$', views.password_reset, dict(post_reset_redirect='password_reset')),
|
||||
url(r'^password_reset/html_email_template/$', views.password_reset,
|
||||
dict(html_email_template_name='registration/html_password_reset_email.html')),
|
||||
url(r'^reset/custom/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$',
|
||||
views.password_reset_confirm,
|
||||
dict(post_reset_redirect='/custom/')),
|
||||
url(r'^reset/custom/named/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$',
|
||||
views.password_reset_confirm,
|
||||
dict(post_reset_redirect='password_reset')),
|
||||
url(r'^password_change/custom/$', views.password_change, dict(post_change_redirect='/custom/')),
|
||||
url(r'^password_change/custom/named/$', views.password_change, dict(post_change_redirect='password_reset')),
|
||||
url(r'^admin_password_reset/$', views.password_reset, dict(is_admin_site=True)),
|
||||
url(r'^login_required/$', login_required(views.password_reset)),
|
||||
url(r'^login_required_login_url/$', login_required(views.password_reset, login_url='/somewhere/')),
|
||||
|
||||
url(r'^auth_processor_no_attr_access/$', auth_processor_no_attr_access),
|
||||
url(r'^auth_processor_attr_access/$', auth_processor_attr_access),
|
||||
url(r'^auth_processor_user/$', auth_processor_user),
|
||||
url(r'^auth_processor_perms/$', auth_processor_perms),
|
||||
url(r'^auth_processor_perm_in_perms/$', auth_processor_perm_in_perms),
|
||||
url(r'^auth_processor_messages/$', auth_processor_messages),
|
||||
url(r'^custom_request_auth_login/$', custom_request_auth_login),
|
||||
url(r'^userpage/(.+)/$', userpage, name="userpage"),
|
||||
|
||||
# This line is only required to render the password reset with is_admin=True
|
||||
url(r'^admin/', include(admin.site.urls)),
|
||||
]
|
|
@ -31,7 +31,7 @@ class SocialLoginSerializer(serializers.Serializer):
|
|||
try:
|
||||
login = self.adapter.complete_login(request, app, token,
|
||||
response=access_token)
|
||||
token.account = login.account
|
||||
|
||||
login.token = token
|
||||
complete_social_login(request, login)
|
||||
except HTTPError:
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
from django.conf.urls import patterns, url, include
|
||||
from django.views.generic import TemplateView
|
||||
from django.contrib.auth.tests import urls
|
||||
import rest_auth.django_test_urls
|
||||
|
||||
from allauth.socialaccount.providers.facebook.views import FacebookOAuth2Adapter
|
||||
|
||||
|
@ -13,7 +13,7 @@ class FacebookLogin(SocialLogin):
|
|||
|
||||
urlpatterns += patterns('',
|
||||
url(r'^rest-registration/', include('rest_auth.registration.urls')),
|
||||
url(r'^test-admin/', include(urls)),
|
||||
url(r'^test-admin/', include(rest_auth.django_test_urls)),
|
||||
url(r'^account-email-verification-sent/$', TemplateView.as_view(),
|
||||
name='account_email_verification_sent'),
|
||||
url(r'^account-confirm-email/(?P<key>\w+)/$', TemplateView.as_view(),
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
import json
|
||||
from datetime import datetime, date, time
|
||||
|
||||
from django.conf import settings
|
||||
from django.core.urlresolvers import reverse
|
||||
|
@ -26,18 +25,6 @@ class APIClient(Client):
|
|||
return self.generic('OPTIONS', path, data, content_type, **extra)
|
||||
|
||||
|
||||
# class CustomJSONEncoder(json.JSONEncoder):
|
||||
# """
|
||||
# Convert datetime/date objects into isoformat
|
||||
# """
|
||||
|
||||
# def default(self, obj):
|
||||
# if isinstance(obj, (datetime, date, time)):
|
||||
# return obj.isoformat()
|
||||
# else:
|
||||
# return super(CustomJSONEncoder, self).default(obj)
|
||||
|
||||
|
||||
class BaseAPITestCase(object):
|
||||
|
||||
"""
|
||||
|
@ -471,7 +458,7 @@ class TestSocialAuth(TestCase, BaseAPITestCase):
|
|||
ACCOUNT_EMAIL_REQUIRED=True,
|
||||
REST_SESSION_LOGIN=False
|
||||
)
|
||||
def teste_edge_case(self):
|
||||
def test_edge_case(self):
|
||||
resp_body = '{"id":"123123123123","first_name":"John","gender":"male","last_name":"Smith","link":"https:\\/\\/www.facebook.com\\/john.smith","locale":"en_US","name":"John Smith","timezone":2,"updated_time":"2014-08-13T10:14:38+0000","username":"john.smith","verified":true,"email":"%s"}'
|
||||
responses.add(responses.GET, self.graph_api_url,
|
||||
body=resp_body % self.EMAIL,
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
django-allauth>=0.19.0
|
||||
django-allauth>=0.19.1
|
||||
responses>=0.3.0
|
||||
|
|
Loading…
Reference in New Issue
Block a user