我目前正在使用 Python 完成 Harry Percival 的测试驱动开发,一旦我将 {% csrf_token %} 添加到我的 html 模板,我就会遇到响应问题。
由于这是测试驱动的开发,因此有几个单元测试失败。
当我删除 {% csrf_token %} 时,我通过了测试。当它存在于代码中时,它会修改响应以包含意外的行
<input type="hidden" name="csrfmiddlewaretoken" value="WaPf57...">
出现在原始行下方“
<body>
<h1>Your To-Do List</h1>
<form method="POST">
<input name="item_text" id="id_new_item" placeholder="Enter a to-do item" />
{% csrf_token %}
</form>
<table id="id_list_table">
<tr><td>{{ new_item_text }}</td></tr>
</table>
</body>
在下面的单元测试中,我已将实际和预期结果打印到我的控制台,并且我收到了另一行带有 csrfmiddleware 令牌的行。
def test_home_page_returns_correct_html(self):
request = HttpRequest()
response = home_page(request)
expected_html = render_to_string('home.html')
print('response: ', response.content.decode())
print('expected: ', expected_html)
self.assertEqual(response.content.decode(), expected_html)
有没有办法从响应中删除它,或者我应该修改测试以使其包含所有预期的 HTML 并忽略“隐藏的”csrfmiddlewaretoken?
呼唤远方
HUX布斯
相关分类