If you've tried using sessions with the Django test client as the official documentation describes, you'll have noticed that it doesn't work.
There are a couple bugs in the Django ticket system around this, the main one being https://code.djangoproject.com/ticket/10899, but there's been no movement on it for 8 months. However, that ticket has the code you need to get your sessions working.
So if you want to use sessions in your tests (e.g., to test whether a view is adding the right stuff to the session), add the following to the setUp() method of your test case:
def setUp(self): from django.conf import settings engine = import_module(settings.SESSION_ENGINE) store = engine.SessionStore() store.save() # we need to make load() work, or the cookie is worthless self.client.cookies[settings.SESSION_COOKIE_NAME] = store.session_key
Now when you access self.client.session in your tests, it'll actually remember any changes made to it during the course of the test.