2011-12-05 22 views
9

Estoy tratando de averiguar cómo hacer que el cliente de prueba Django juegue bien con mi aplicación que pone a cada usuario en su propio subdominio. es decir, cada cuenta tiene account1.myapp.com, account2.myapp.com.Django Test Client y Subdominios

Un usuario podría ser miembro de múltiples subdominios (modelo de basecamp similar), así que manejo qué subdominio se está emitiendo la solicitud en el middleware.

Cuando estoy escribiendo mis pruebas unitarias, me di cuenta de que todas las solicitudes se envían a "http: // testserver" que mi middleware luego redirige y no se sigue el siguiente 302 ya que se determina que es una solicitud externa.

¿Alguien conoce una forma de habilitar esto con el cliente de prueba? Actualmente estoy pirateando un poco en django para habilitarlo.

+0

No creo que el cliente de prueba tenga ningún soporte para esto. Me encontré con el mismo problema ya que necesitaba hacer solicitudes a varios subdominios, y también tuve que hackear un poco en Django. Para mí, las URL eran diferentes para diferentes subdominios, por lo que la solución era usar urlresolvers personalizados. – Spike

Respuesta

8

en sus pruebas, cuando se utiliza el cliente, agregue el parámetro HTTP_HOST:

response = c.post(reverse('my-url'), data={}, HTTP_HOST='account1.myapp.com') 

en su middleware ahora debería ver cambiado el anfitrión!

Cuestiones relacionadas