how to get request object in django unit testing?

user1003121 picture user1003121 · Apr 23, 2012 · Viewed 43.4k times · Source

I have a function as

def getEvents(eid, request):
    ......

Now I want to write unit test for the above function separately (without calling the view). So how should I call the above in TestCase. Is it possible to create request ?

Answer

Mariusz Jamro picture Mariusz Jamro · Apr 23, 2012

See this solution:

from django.utils import unittest
from django.test.client import RequestFactory

class SimpleTest(unittest.TestCase):
    def setUp(self):
        # Every test needs access to the request factory.
        self.factory = RequestFactory()

    def test_details(self):
        # Create an instance of a GET request.
        request = self.factory.get('/customer/details')

        # Test my_view() as if it were deployed at /customer/details
        response = my_view(request)
        self.assertEqual(response.status_code, 200)