diff --git a/rest_auth/registration/serializers.py b/rest_auth/registration/serializers.py index c6b5d5b..dcd5e10 100644 --- a/rest_auth/registration/serializers.py +++ b/rest_auth/registration/serializers.py @@ -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) diff --git a/rest_auth/tests/test_api.py b/rest_auth/tests/test_api.py index 0356d19..778fa3e 100644 --- a/rest_auth/tests/test_api.py +++ b/rest_auth/tests/test_api.py @@ -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()