Merge pull request #4 from girishkumarkh/patch-4

Patch 4
This commit is contained in:
Girish 2016-03-01 21:33:49 +00:00
commit 34b714b604
10 changed files with 20 additions and 18 deletions

3
.gitignore vendored
View File

@ -35,9 +35,6 @@ nosetests.xml
coverage.xml coverage.xml
coverage_html coverage_html
# Translations
*.mo
# Mr Developer # Mr Developer
.mr.developer.cfg .mr.developer.cfg
.project .project

View File

@ -37,6 +37,7 @@ Configuration
Possible key values: Possible key values:
- REGISTER_SERIALIZER - serializer class in ``rest_auth.register.views.RegisterView``, default value ``rest_auth.register.serializers.RegisterSerializer`` - REGISTER_SERIALIZER - serializer class in ``rest_auth.register.views.RegisterView``, default value ``rest_auth.register.serializers.RegisterSerializer``
- SOCIAL_LOGIN_SERIALIZER - serializer class in ``rest_auth.register.views.SocialLoginView``, default value ``rest_auth.register.serializers.SocialLoginSerializer``
- **REST_AUTH_TOKEN_MODEL** - model class for tokens, default value ``rest_framework.authtoken.models`` - **REST_AUTH_TOKEN_MODEL** - model class for tokens, default value ``rest_framework.authtoken.models``

Binary file not shown.

View File

@ -1,7 +1,8 @@
from django.conf import settings from django.conf import settings
from rest_auth.registration.serializers import ( from rest_auth.registration.serializers import (
RegisterSerializer as DefaultRegisterSerializer) RegisterSerializer as DefaultRegisterSerializer,
SocialLoginSerializer as DefaultSocialLoginSerializer)
from ..utils import import_callable from ..utils import import_callable
@ -9,3 +10,6 @@ serializers = getattr(settings, 'REST_AUTH_REGISTER_SERIALIZERS', {})
RegisterSerializer = import_callable( RegisterSerializer = import_callable(
serializers.get('REGISTER_SERIALIZER', DefaultRegisterSerializer)) serializers.get('REGISTER_SERIALIZER', DefaultRegisterSerializer))
SocialLoginSerializer = import_callable(
serializers.get('SOCIAL_LOGIN_SERIALIZER', DefaultSocialLoginSerializer))

View File

@ -15,14 +15,15 @@ from allauth.account import app_settings as allauth_settings
from rest_auth.app_settings import (TokenSerializer, from rest_auth.app_settings import (TokenSerializer,
JWTSerializer, JWTSerializer,
create_token) create_token)
from rest_auth.registration.serializers import (SocialLoginSerializer, from rest_auth.registration.serializers import VerifyEmailSerializer
VerifyEmailSerializer)
from rest_auth.views import LoginView from rest_auth.views import LoginView
from rest_auth.models import TokenModel from rest_auth.models import TokenModel
from .app_settings import RegisterSerializer from .app_settings import (RegisterSerializer,
SocialLoginSerializer)
from rest_auth.utils import jwt_encode from rest_auth.utils import jwt_encode
class RegisterView(CreateAPIView): class RegisterView(CreateAPIView):
serializer_class = RegisterSerializer serializer_class = RegisterSerializer
permission_classes = (AllowAny, ) permission_classes = (AllowAny, )

View File

@ -118,6 +118,7 @@ class TokenSerializer(serializers.ModelSerializer):
model = TokenModel model = TokenModel
fields = ('key',) fields = ('key',)
class UserDetailsSerializer(serializers.ModelSerializer): class UserDetailsSerializer(serializers.ModelSerializer):
""" """
@ -128,6 +129,7 @@ class UserDetailsSerializer(serializers.ModelSerializer):
fields = ('username', 'email', 'first_name', 'last_name') fields = ('username', 'email', 'first_name', 'last_name')
read_only_fields = ('email', ) read_only_fields = ('email', )
class JWTSerializer(serializers.Serializer): class JWTSerializer(serializers.Serializer):
""" """
Serializer for JWT authentication. Serializer for JWT authentication.
@ -135,6 +137,7 @@ class JWTSerializer(serializers.Serializer):
token = serializers.CharField() token = serializers.CharField()
user = UserDetailsSerializer() user = UserDetailsSerializer()
class PasswordResetSerializer(serializers.Serializer): class PasswordResetSerializer(serializers.Serializer):
""" """

View File

@ -97,13 +97,12 @@ class APITestCase1(TestCase, BaseAPITestCase):
"username": self.USERNAME, "username": self.USERNAME,
"password": self.PASS "password": self.PASS
} }
user = get_user_model().objects.create_user(self.USERNAME, '', self.PASS) get_user_model().objects.create_user(self.USERNAME, '', self.PASS)
self.post(self.login_url, data=payload, status_code=200) self.post(self.login_url, data=payload, status_code=200)
self.assertEqual('token' in self.response.json.keys(), True) self.assertEqual('token' in self.response.json.keys(), True)
self.token = self.response.json['token'] self.token = self.response.json['token']
def test_login_by_email(self): def test_login_by_email(self):
# starting test without allauth app # starting test without allauth app
settings.INSTALLED_APPS.remove('allauth') settings.INSTALLED_APPS.remove('allauth')
@ -335,7 +334,6 @@ class APITestCase1(TestCase, BaseAPITestCase):
user = get_user_model().objects.get(pk=user.pk) user = get_user_model().objects.get(pk=user.pk)
self.assertEqual(user.email, self.response.json['email']) self.assertEqual(user.email, self.response.json['email'])
def test_registration(self): def test_registration(self):
user_count = get_user_model().objects.all().count() user_count = get_user_model().objects.all().count()
@ -365,7 +363,6 @@ class APITestCase1(TestCase, BaseAPITestCase):
self._login() self._login()
self._logout() self._logout()
def test_registration_with_invalid_password(self): def test_registration_with_invalid_password(self):
data = self.REGISTRATION_DATA.copy() data = self.REGISTRATION_DATA.copy()
data['password2'] = 'foobar' data['password2'] = 'foobar'
@ -430,7 +427,7 @@ class APITestCase1(TestCase, BaseAPITestCase):
} }
# create user # create user
user = get_user_model().objects.create_user(self.USERNAME, '', self.PASS) get_user_model().objects.create_user(self.USERNAME, '', self.PASS)
self.post(self.login_url, data=payload, status_code=200) self.post(self.login_url, data=payload, status_code=200)
self.get(self.logout_url, status=status.HTTP_200_OK) self.get(self.logout_url, status=status.HTTP_200_OK)
@ -443,7 +440,7 @@ class APITestCase1(TestCase, BaseAPITestCase):
} }
# create user # create user
user = get_user_model().objects.create_user(self.USERNAME, '', self.PASS) get_user_model().objects.create_user(self.USERNAME, '', self.PASS)
self.post(self.login_url, data=payload, status_code=status.HTTP_200_OK) self.post(self.login_url, data=payload, status_code=status.HTTP_200_OK)
self.get(self.logout_url, status_code=status.HTTP_405_METHOD_NOT_ALLOWED) self.get(self.logout_url, status_code=status.HTTP_405_METHOD_NOT_ALLOWED)

View File

@ -150,4 +150,3 @@ class TestSocialAuth(TestCase, BaseAPITestCase):
self.assertIn('user', self.response.json.keys()) self.assertIn('user', self.response.json.keys())
self.assertEqual(get_user_model().objects.all().count(), users_count + 1) self.assertEqual(get_user_model().objects.all().count(), users_count + 1)

View File

@ -15,6 +15,7 @@ def default_create_token(token_model, user, serializer):
token, _ = token_model.objects.get_or_create(user=user) token, _ = token_model.objects.get_or_create(user=user)
return token return token
def jwt_encode(user): def jwt_encode(user):
try: try:
from rest_framework_jwt.settings import api_settings from rest_framework_jwt.settings import api_settings

View File

@ -55,7 +55,6 @@ class LoginView(GenericAPIView):
if getattr(settings, 'REST_SESSION_LOGIN', True): if getattr(settings, 'REST_SESSION_LOGIN', True):
login(self.request, self.user) login(self.request, self.user)
def get_response(self): def get_response(self):
serializer_class = self.get_response_serializer() serializer_class = self.get_response_serializer()