From 6e940e08aa312a9e04357216b5195408b7d8b7d7 Mon Sep 17 00:00:00 2001 From: mariodev Date: Mon, 4 Jul 2016 22:16:24 +0200 Subject: [PATCH] Fixes missing backend attr issue --- rest_auth/tests/test_social.py | 13 +++++++++++-- rest_auth/views.py | 5 ++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/rest_auth/tests/test_social.py b/rest_auth/tests/test_social.py index cb96700..19a3ed2 100644 --- a/rest_auth/tests/test_social.py +++ b/rest_auth/tests/test_social.py @@ -105,8 +105,7 @@ class TestSocialAuth(TestCase, BaseAPITestCase): self.assertIn('key', self.response.json.keys()) self.assertEqual(get_user_model().objects.all().count(), users_count + 1) - @responses.activate - def test_twitter_social_auth(self): + def _twitter_social_auth(self): # fake response for twitter call resp_body = { "id": "123123123123", @@ -136,6 +135,16 @@ class TestSocialAuth(TestCase, BaseAPITestCase): self.assertIn('key', self.response.json.keys()) self.assertEqual(get_user_model().objects.all().count(), users_count + 1) + @responses.activate + @override_settings(SOCIALACCOUNT_AUTO_SIGNUP=True) + def test_twitter_social_auth(self): + self._twitter_social_auth() + + @responses.activate + @override_settings(SOCIALACCOUNT_AUTO_SIGNUP=False) + def test_twitter_social_auth_without_auto_singup(self): + self._twitter_social_auth() + @responses.activate @override_settings( ACCOUNT_EMAIL_VERIFICATION='mandatory', diff --git a/rest_auth/views.py b/rest_auth/views.py index 55f767d..c9b1ed8 100644 --- a/rest_auth/views.py +++ b/rest_auth/views.py @@ -11,6 +11,7 @@ from rest_framework.permissions import IsAuthenticated, AllowAny from rest_framework.generics import RetrieveUpdateAPIView from allauth.account import app_settings as allauth_settings +from allauth.account.adapter import get_adapter from .app_settings import ( TokenSerializer, UserDetailsSerializer, LoginSerializer, @@ -53,7 +54,7 @@ class LoginView(GenericAPIView): self.token = create_token(self.token_model, self.user, self.serializer) if getattr(settings, 'REST_SESSION_LOGIN', True): - login(self.request, self.user) + get_adapter(self.request).login(self.request, self.user) def get_response(self): serializer_class = self.get_response_serializer() @@ -70,8 +71,10 @@ class LoginView(GenericAPIView): return Response(serializer.data, status=status.HTTP_200_OK) def post(self, request, *args, **kwargs): + self.request = request self.serializer = self.get_serializer(data=self.request.data) self.serializer.is_valid(raise_exception=True) + self.login() return self.get_response()