Django get_signed_cookie手动签名的cookie

时间:2015-03-01 19:32:16

标签: python django cookies django-rest-framework django-testing

我在其中一个观看中使用了get_signed_cookie,并且它有效。问题在于测试它,我在我的测试中使用Django的django.core.signing模块手动签署我的cookie,其盐与我的实际代码相同(我使用的是盐#' 39; s在我的settings)。

当我进行非自动化测试时,一切都很顺利。我将测试中设置的cookie与Django本身设置的cookie进行了比较,并且它们的结构相同:

在我的测试中(我在我的测试中手动签署字符串' test_cookie_value')

{'my_cookie': 'test_cookie_value:s5SA5skGmc4As-Weyia6Tlwq_V8'}

Django的:

{'my_cookie': 'zTmwe4ATUEtEEAVs:1YRl0a:Lg3KHfpL93HoUijkZlNphZNURu4'}

但是当我的观点尝试get_signed_cookie("my_cookie", False, salt="my_salt")时,会返回False

我认为这很奇怪,虽然我试图服从测试山羊(第一次TDD'在这里),但我很想跳过测试......

我希望有人可以给我一些指导,我现在暂时无视山羊的声音。

1 个答案:

答案 0 :(得分:-1)

我找到了解决方案。实际上这很简单。

我尝试在我的测试请求上设置我的cookie,这是有意义的,因为cookie应该在请求中发送。测试它的一种更好的方法是首先GET一个资源(设置te cookie,这也会发生在正常的网络情境中),然后POST设置cookie。这很好用。