1

我有一个 Django 应用程序和自定义用户 - 想要对其进行测试(进行单元测试)。我的自定义用户是 emailuser,它由电子邮件和密码字段组成。我想设置一些这样的民族mplayer,给它一个字段和一个密码。但是我下面的代码不起作用。

设置.py

AUTH_USER_MODEL = 'custom_user.EmailUser'

我在 test.py 中的代码

from django.test import TestCase
from django.conf import settings

class MyTest(TestCase):
    def setUp(self):
        self.user = settings.AUTH_USER_MODEL.objects.create('testuser@test.pl', 'testpass')

    def test_user(self):
        self.assertEqual(self.user, 'testuser@test.pl')
4

2 回答 2

5

好吧,试试这个:

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

User = get_user_model()

class CustomUserTestCase(TestCase):

    def test_create_user(self):
        # params = depends on your basemanager’s create_user methods.
        user = User.objects.create(**params)
        self.assertEqual(user.pk, user.id)
于 2017-08-31T13:00:46.960 回答
2

您应该使用该create_user()方法,而不仅仅是create(). 此外,您应该检查该email字段,而不是其user本身。

class MyTest(TestCase):
    def setUp(self):
        self.user = settings.AUTH_USER_MODEL.objects.create_user(
                                              'testuser@test.pl', 'testpass')

    def test_user(self):
        self.assertEqual(self.user.email, 'testuser@test.pl')
于 2015-04-03T08:25:25.617 回答