Django在测试中测试存储的会话数据 [英] Django testing stored session data in tests
本文介绍了Django在测试中测试存储的会话数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个视图:
def ProjectInfo(request):
if request.method == 'POST':
form = ProjectInfoForm(request.POST)
if form.is_valid():
# if form is valid, iterate cleaned form data
# and save data to session
for k, v in form.cleaned_data.iteritems():
request.session[k] = v
return HttpResponseRedirect('/next/')
else:
...
else:
...
我的测试:
from django.test import TestCase, Client
from django.core.urlresolvers import reverse
from tool.models import Module, Model
from django.contrib.sessions.models import Session
def test_project_info_form_post_submission(self):
"""
Test if project info form can be submitted via post.
"""
# set up our POST data
post_data = {
'zipcode': '90210',
'module': self.module1.name,
'model': self.model1.name,
'orientation': 1,
'tilt': 1,
'rails_direction': 1,
}
...
self.assertEqual(response.status_code, 302)
# test if 'zipcode' in session is equal to posted value.
所以,最后一个评论在我的测试中,我想测试一个特定的值是否在 session
dict,并且键:值配对是正确的。我该怎么做?可以使用 request.session
?
So, where the last comment is in my test, I want to test if a specific value is in the session
dict and that the key:value pairing is correct. How do I go about this? Can I use request.session
?
任何帮助都非常感激。
推荐答案
根据 docs :
from django.test import TestCase
class SimpleTest(TestCase):
def test_details(self):
# Issue a GET request.
self.client.get('/customer/details/')
session = self.client.session
self.assertEqual(session["somekey"], "test")
这篇关于Django在测试中测试存储的会话数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文