Django testing stored session data in tests

I have a view as such:

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: ... 

And in my tests:

 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. 

So, when the last comment is in my test, I want to check if a specific value is specified in the session dict and that the correct key combination is: value. How can I do it? Can I use request.session ?

Any help is greatly appreciated.

+7
source share
1 answer

According to 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") 
+26
source

All Articles