How to unit test for natural key in models.py in django

30 Views Asked by At

I want to unit test for the models.py in django. I do not know how to unit test for the function natural_key()

class User(AbstractBaseUser, PermissionsMixin):
    email = models.EmailField(_('email address'), unique=True)
    username = models.CharField(max_length=10, default="default", null=True, blank=True)


    @property
    def natural_key(self):
        return (self.email, self.username)

I tried

self.user1 = User.objects.create(
     email="[email protected]"
     username="username1")

def test_natural_key_is_created(self):
   self.assertEquals(self.user1.natural_key, "[email protected]", "username1")

but my unit test is failed

1

There are 1 best solutions below

0
Nealium On

Make it equal to a tuple

self.assertEquals(self.user1.natural_key, ("[email protected]", "username1"))

Assertions are formatted like this:

self.assertEquals(value_a, value_b, error_msg)
# or
self.assertTrue(boolean_value, error_msg)

So you were saying the error message was username1