我有一个使用
response.set_cookie
方法设置 cookie 的视图。我想测试 cookie 是否设置在 TestCase
中。
根据 docs,cookie 应该可以在客户端对象中访问,但是
client.cookies.items
返回一个空列表。浏览器中已正确设置 cookie。
测试用例:
>>> response = self.client.get(url)
>>> self.client.cookies.items()
[]
有什么想法吗?
您需要使用响应的客户端实例:
response = self.client.get(url)
response.client.cookies.items()
response
是 Client
类的实例。您可以使用 response.cookies
,而不使用 client
:
response = self.client.get(f'/authors/{author.id}/')
print(response.cookies)
>>> Set-Cookie: user=154; expires=Tue, 17 Oct 2028 00:31:19 GMT; Max-Age=3600; Path=/
如果你想访问
user
值,语法如下:
response.cookies["user"].value
>>> 154
旁注:
response.cookies["user"]
是一个 http.cookies.Morsel 对象,因此访问 cookie 本身的 value
与访问常规字典不同。