Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
322 views
in Technique[技术] by (71.8m points)

python - Django REST API TestCase Normalize Email failing

I keep failing a test case that tests whether the email passed into the create_user function is normalized correctly. However the normalize_email() method does not seem to be working properly.

test_modles.py

from django.test import TestCase
from django.contrib.auth import get_user_model


    class ModelTests(TestCase):
    
        def test_new_user_email_normalized(self):
            """Test the email for a new user is normalized"""
            email = 'TEST.TES.com'
            user = get_user_model().objects.create_user(
                email,
                'test1213'
            )
    
            self.assertEqual(user.email, email.lower())

models.py

from django.db import models
from django.contrib.auth.models import AbstractBaseUser, BaseUserManager, 
                                        PermissionsMixin


class UserManager(BaseUserManager):

    def create_user(self, email, password=None, **extra_fields):
        """Creates and saves a new user"""

        user = self.model(email=self.normalize_email(email), **extra_fields)
        user.set_password(password)
        user.save(using=self._db)

        return user

class User(AbstractBaseUser, PermissionsMixin):
    """Custome user model that supports using email instead of username"""
    email = models.EmailField(max_length=255, unique=True)
    name = models.CharField(max_length=255)
    is_active = models.BooleanField(default=True)
    is_teamMember = models.BooleanField(default=True)
    is_staff = models.BooleanField(default=False)

    objects = UserManager()

    USERNAME_FIELD = 'email'

error

======================================================================
FAIL: test_new_user_email_normalized (core.tests.test_models.ModelTests)
Test the email for a new user is normalized
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/app/core/tests/test_models.py", line 27, in test_new_user_email_normalized
    self.assertEqual(user.email, email.lower())
AssertionError: 'TEST.TES.com' != 'test.tes.com'
- TEST.TES.com
+ test.tes.com


----------------------------------------------------------------------
Ran 2 tests in 0.484s

FAILED (failures=1)
question from:https://stackoverflow.com/questions/65647170/django-rest-api-testcase-normalize-email-failing

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Found the error

def test_new_user_email_normalized(self):
            """Test the email for a new user is normalized"""
            email = 'TEST.TES.com' #<------------ Error Here -------
            user = get_user_model().objects.create_user(
                email,
                'test1213'
            )

should be

email = '[email protected]'


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...