gpt4 book ai didi

django - 如何在 Django 单元测试中测试 AnonymousUser

转载 作者:行者123 更新时间:2023-11-28 19:51:40 27 4
gpt4 key购买 nike

  • 我正在测试一个表单
  • 当用户看到表单时,用户可能已登录,也可能是匿名用户
  • 如果表单成功,用户将登录
  • 如果表单失败,用户将保持原样
  • 我想通过单元测试来确认此行为。

django.test.Client 确实有一个用于这种事情的 login 方法,但是给定一个 response 对象我如何确定谁已登录?

    data = {'email':'john@example.com','password':'abc'}
c = Client()
# here was can assume `request.user` is the AnonymousUser
# or I can use `c.login(..)` to log someone in
r = c.post('/myform/', data)

如果我提交第二个请求,我的单元测试能否确定 request.user 现在是谁?

最佳答案

你可以这样做:

client = Client()
# here was can assume `request.user` is the AnonymousUser
# or I can use `c.login(..)` to log someone in
from django.contrib import auth
user = auth.get_user(client) # it returns User or AnonymousUser

if user.is_anonymous():
...

之所以有效,是因为 client 保持用户 session (client.session)。

关于django - 如何在 Django 单元测试中测试 AnonymousUser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17357536/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com