mirror of
				https://github.com/Tivix/django-rest-auth.git
				synced 2025-11-04 09:37:35 +03:00 
			
		
		
		
	Django 1.8 compatibility fixes
This commit is contained in:
		
							parent
							
								
									6eb0146c2b
								
							
						
					
					
						commit
						80a7988a9b
					
				| 
						 | 
					@ -6,10 +6,13 @@ env:
 | 
				
			||||||
  - DJANGO=1.5.12
 | 
					  - DJANGO=1.5.12
 | 
				
			||||||
  - DJANGO=1.6.11
 | 
					  - DJANGO=1.6.11
 | 
				
			||||||
  - DJANGO=1.7.7
 | 
					  - DJANGO=1.7.7
 | 
				
			||||||
 | 
					  - DJANGO=1.8
 | 
				
			||||||
matrix:
 | 
					matrix:
 | 
				
			||||||
  exclude:
 | 
					  exclude:
 | 
				
			||||||
    - python: "2.6"
 | 
					    - python: "2.6"
 | 
				
			||||||
      env: DJANGO=1.7.7
 | 
					      env: DJANGO=1.7.7
 | 
				
			||||||
 | 
					    - python: "2.6"
 | 
				
			||||||
 | 
					      env: DJANGO=1.8
 | 
				
			||||||
install:
 | 
					install:
 | 
				
			||||||
  - pip install -q Django==$DJANGO --use-mirrors
 | 
					  - pip install -q Django==$DJANGO --use-mirrors
 | 
				
			||||||
  - pip install coveralls
 | 
					  - 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:
 | 
					        try:
 | 
				
			||||||
            login = self.adapter.complete_login(request, app, token,
 | 
					            login = self.adapter.complete_login(request, app, token,
 | 
				
			||||||
                                                response=access_token)
 | 
					                                                response=access_token)
 | 
				
			||||||
            token.account = login.account
 | 
					
 | 
				
			||||||
            login.token = token
 | 
					            login.token = token
 | 
				
			||||||
            complete_social_login(request, login)
 | 
					            complete_social_login(request, login)
 | 
				
			||||||
        except HTTPError:
 | 
					        except HTTPError:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
from django.conf.urls import patterns, url, include
 | 
					from django.conf.urls import patterns, url, include
 | 
				
			||||||
from django.views.generic import TemplateView
 | 
					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
 | 
					from allauth.socialaccount.providers.facebook.views import FacebookOAuth2Adapter
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -13,7 +13,7 @@ class FacebookLogin(SocialLogin):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
urlpatterns += patterns('',
 | 
					urlpatterns += patterns('',
 | 
				
			||||||
    url(r'^rest-registration/', include('rest_auth.registration.urls')),
 | 
					    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(),
 | 
					    url(r'^account-email-verification-sent/$', TemplateView.as_view(),
 | 
				
			||||||
        name='account_email_verification_sent'),
 | 
					        name='account_email_verification_sent'),
 | 
				
			||||||
    url(r'^account-confirm-email/(?P<key>\w+)/$', TemplateView.as_view(),
 | 
					    url(r'^account-confirm-email/(?P<key>\w+)/$', TemplateView.as_view(),
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,4 @@
 | 
				
			||||||
import json
 | 
					import json
 | 
				
			||||||
from datetime import datetime, date, time
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
from django.conf import settings
 | 
					from django.conf import settings
 | 
				
			||||||
from django.core.urlresolvers import reverse
 | 
					from django.core.urlresolvers import reverse
 | 
				
			||||||
| 
						 | 
					@ -26,18 +25,6 @@ class APIClient(Client):
 | 
				
			||||||
        return self.generic('OPTIONS', path, data, content_type, **extra)
 | 
					        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):
 | 
					class BaseAPITestCase(object):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
| 
						 | 
					@ -471,7 +458,7 @@ class TestSocialAuth(TestCase, BaseAPITestCase):
 | 
				
			||||||
        ACCOUNT_EMAIL_REQUIRED=True,
 | 
					        ACCOUNT_EMAIL_REQUIRED=True,
 | 
				
			||||||
        REST_SESSION_LOGIN=False
 | 
					        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"}'
 | 
					        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,
 | 
					        responses.add(responses.GET, self.graph_api_url,
 | 
				
			||||||
            body=resp_body % self.EMAIL,
 | 
					            body=resp_body % self.EMAIL,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,2 +1,2 @@
 | 
				
			||||||
django-allauth>=0.19.0
 | 
					django-allauth>=0.19.1
 | 
				
			||||||
responses>=0.3.0
 | 
					responses>=0.3.0
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user