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)
Run Code Online (Sandbox Code Playgroud)
request.user如果我要提交第二个请求,我的unittest可以确定现在是谁吗?
你可以这样做:
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():
...
Run Code Online (Sandbox Code Playgroud)
它的工作原理是因为客户端保持用户会话(client.session).