我正在尝试使用其内置的登录功能登录测试客户端。我正在尝试对视图进行单元测试,并且需要登录以测试其中的一些。我一直在尝试这样做太久,需要帮助。几点注意事项:
create_user() 确实创建了一个有效用户,它已在其他位置使用。
根据我对 client.login() 的了解,它返回一个布尔值,当我运行测试时,失败是“False is not True”,所以这似乎是正确的。
我成功登录的唯一方法是调用 client.post("/my/login/url", {username and password in dict.}) 但是,由于某种原因,我的所有测试用例都没有保持登录状态我觉得很奇怪。
def setUp(self):
"""
Initializes the test client and logs it in.
"""
self.user = create_user()
self.logged_in = self.client.login(username=self.user.username, password=self.user.password)
def test_valid(self):
self.assertTrue(self.logged_in)
我已将其更改为以下内容:
def setUp(self):
"""
Initializes the test client and logs it in.
"""
self.password = "password"
self.user = create_user(password=self.password)
self.logged_in = self.client.login(username=self.user.username, password=self.password)
它仍然无法登录。
create user 在“Static”类中,user_count 初始化为 0,函数如下:
def create_user(username=None, password=None, email=None, is_superuser=False):
if username is None:
username = "user%d" % Static.user_count
while User.objects.filter(username=username).count() != 0:
Static.user_count += 1
username = "user%d" % Static.user_count
if password is None:
password = "password"
if email is None:
email="user%d@test.com" % Static.user_count
Static.user_count += 1
user = User.objects.create(username=username, password=password, is_superuser=is_superuser)