2011-06-09 27 views
12

Estoy escribiendo una prueba de unidad para las vistas de Django.Cambie el dominio predeterminado de Client() en unittest de Django

class TestLog(unittest.TestCase): 
    """Test for Contact""" 
    def setUp(self): 
     self.c = Client() 
     try: 
      self.bob = User.objects.create_user("mojo","[email protected]", "bmojo") 
     except : 
      print '' 

    def test_get_emails(self): 
     response = self.c.get('/text/') 
     self.assertEqual(response.status_code, 200) 


    def test_htmlemils(self): 
     response = self.c.get('/emails/html/upload') 
     self.assertEqual(response.status_code, 200) 

El c = Cliente() realiza la 'http: // testserver' Dominio cual quiero sobreescribir, quiero añadir mi verdadero dominio de ese cliente de prueba, es su forma de personalizar el cliente de prueba ?

+1

FYI: TestCase añade automáticamente 'self.client' como una instancia de cliente, por lo que no necesita hacer' self.c = Cliente() '' en setup'. Simplemente cambie 'self.c.get' en sus métodos de prueba a' test.client.get' :) – adamnfish

Respuesta

21

Django's Clientextends RequestFactory por lo que debería poder pasar parámetros adicionales como argumentos de palabra clave.

Probar:

response = self.c.get('/emails/html/upload', SERVER_NAME="mydomain.com") 
+2

sí, trabajo, añado directamente SERVER_NAME en el cliente como C = Cliente (SERVER_NAME = "midominio.com") – Shashi

Cuestiones relacionadas