You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用graphene-django GraphQTestCase测试Cookie触发AttributeError问题排查

问题原因及解决办法

核心问题

你混淆了**请求对象(WSGIRequest)和响应对象(HttpResponse)**的Cookie属性:

  • WSGIRequest(客户端发起的请求)用COOKIES(大写)属性获取客户端发送的Cookie
  • GraphQLTestCase.query()返回的是HttpResponse(服务端返回的响应),它存储要发给客户端的Cookie的属性是小写的cookies,而非大写的COOKIES——这是触发AttributeError的直接原因。

另外,response.cookies是Django的SimpleCookie实例,不是普通字典,获取值的方式也略有区别。

修改后的测试代码

class CookieTest(GraphQLTestCase):
    def test_set_cookie(self):
        response = self.query(...)  # 返回的是HttpResponse对象
        # 验证目标Cookie是否存在
        self.assertIn('myCookie', response.cookies)
        # 获取Cookie的具体值
        cookie_value = response.cookies['myCookie'].value
        self.assertIsNotNone(cookie_value)

额外验证(可选)

如果需要确认Cookie的HttpOnly属性是否生效,可以添加:

self.assertTrue(response.cookies['myCookie']['httponly'])

内容的提问来源于stack exchange,提问作者Viljami

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 19:20:30