allow registration with empty email when email field is not required

This commit is contained in:
Egor Poderyagin 2017-05-12 21:53:35 +03:00
parent 8c58782e30
commit eae745c255
2 changed files with 21 additions and 1 deletions

View File

@ -124,7 +124,10 @@ class RegisterSerializer(serializers.Serializer):
min_length=allauth_settings.USERNAME_MIN_LENGTH,
required=allauth_settings.USERNAME_REQUIRED
)
email = serializers.EmailField(required=allauth_settings.EMAIL_REQUIRED)
email = serializers.EmailField(
required=allauth_settings.EMAIL_REQUIRED,
allow_blank=not allauth_settings.EMAIL_REQUIRED
)
password1 = serializers.CharField(write_only=True)
password2 = serializers.CharField(write_only=True)

View File

@ -398,6 +398,23 @@ class APITestCase1(TestCase, BaseAPITestCase):
self._login()
self._logout()
def test_registration_with_empty_email(self):
user_count = get_user_model().objects.all().count()
payload = self.REGISTRATION_DATA
payload['email'] = ''
result = self.post(self.register_url, data=payload, status_code=201)
self.assertIn('key', result.data)
self.assertEqual(get_user_model().objects.all().count(), user_count + 1)
new_user = get_user_model().objects.latest('id')
self.assertEqual(new_user.username, self.REGISTRATION_DATA['username'])
self.assertEqual(new_user.email, "")
self._login()
self._logout()
@override_settings(REST_USE_JWT=True)
def test_registration_with_jwt(self):
user_count = get_user_model().objects.all().count()