From 067e0424ce8a0e15e2faac3f9f9fabe9b7667c72 Mon Sep 17 00:00:00 2001 From: SusanTan Date: Tue, 2 Jul 2013 01:19:44 -0700 Subject: [PATCH] Fixed #20609 -- Documented how to use request.user with RequestFactory Thanks michel@ for the suggestion. --- docs/topics/testing/advanced.txt | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/docs/topics/testing/advanced.txt b/docs/topics/testing/advanced.txt index b8e70b592be..2417274ab5e 100644 --- a/docs/topics/testing/advanced.txt +++ b/docs/topics/testing/advanced.txt @@ -37,18 +37,25 @@ Example The following is a simple unit test using the request factory:: - import unittest + from django.contrib.auth.models import User + from django.test import TestCase from django.test.client import RequestFactory - class SimpleTest(unittest.TestCase): + class SimpleTest(TestCase): def setUp(self): # Every test needs access to the request factory. self.factory = RequestFactory() + self.user = User.objects.create_user( + first_name='jacob', email='jacob@…', password='top_secret') def test_details(self): # Create an instance of a GET request. request = self.factory.get('/customer/details') + # Recall that middleware are not suported. You can simulate a + # logged-in user by setting request.user manually. + request.user = self.user + # Test my_view() as if it were deployed at /customer/details response = my_view(request) self.assertEqual(response.status_code, 200)