¿Cómo obtener objeto de solicitud en django unit testing?

Tengo una función como

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

Ahora quiero escribir la prueba de unidad para la función anterior por separado (sin llamar a la vista). Entonces, ¿cómo debo llamar a lo anterior en TestCase . ¿Es posible crear solicitud?

Vea esta solución :

 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) 

Si está utilizando el cliente de prueba de django ( from django.test.client import Client cliente from django.test.client import Client ) puede acceder a la solicitud desde el objeto de respuesta de esta manera:

 from django.test.client import Client client = Client() response = client.get(some_url) request = response.wsgi_request 

o si está utilizando django.TestCase ( from django.test import TestCase, SimpleTestCase, TransactionTestCase ) puede acceder a la instancia del cliente en cualquier caso de prueba simplemente escribiendo self.client :

 response = self.client.get(some_url) request = response.wsgi_request 

Utilice RequestFactory para crear una solicitud ficticia.

Puedes usar el cliente de prueba django

 from django.test import Client c = Client() response = c.post('/login/', {'username': 'john', 'password': 'smith'}) response.status_code response = c.get('/customer/details/') response.content 

para más detalles
https://docs.djangoproject.com/en/1.11/topics/testing/tools/#overview-and-a-quick-example

¿Quieres decir def getEvents(request, eid) verdad?

Con Django unittest, puede usar el from django.test.client import Client para realizar la solicitud.

Vea aquí: Test Client

La respuesta de @ Secator es prefecta ya que crea un objeto simulado que realmente se prefiere para una buena prueba de unidad. Pero dependiendo de su propósito, podría ser más fácil usar las herramientas de prueba de Django.