Search code examples
pythondjangodjango-testing

how to get request object in django unit testing?


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 ?


Solution

  • 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)