Pregunta

Estoy intentando escribir algunas pruebas usando webtest de poner a prueba mi solicitud GAE pitón. El problema que estoy en la aplicación es que está escuchando en el puerto 8080, pero no puedo configurar webtest de llegar a ese puerto.

Por ejemplo, quiero usar app.get ( '/ getReport') para golpear http: // localhost: 8080 / getReport . Obviamente, que llega justo thits http:. // localhost / getReport

¿Hay una manera de configurar webtest para golpear un puerto en particular?

¿Fue útil?

Solución

config , y cito,

port

Obligatorio? No hay, por defecto es "80"

Define el número de puerto a usar para la ejecución de solicitudes, por ejemplo "8080".

Editar : el usuario aclaró que significan este webtest (pythonpaste de) , no la aplicación Canoo ampliamente utilizado. Yo no habría adivinado, porque pythonpaste de webtest es un hervidor de agua muy diferentes de peces, y cito ...:

Con esto se puede probar su Web aplicaciones sin iniciar un HTTP servidor, y sin meter en el framework web acortando piezas de la aplicación que necesita ser probado. Las pruebas de carreras son WebTest enteramente equivalente a cómo un WSGI HTTP servidor podría llamar una aplicación

No hay ningún servidor HTTP está iniciando, no existe el concepto de "puerto" - las cosas se ejecutan en proceso, a nivel WSGI, sin TCP real / IP y HTTP en el juego. Por lo tanto, la "aplicación" es no escucha en el puerto 8080 (o cualquier otro puerto), sino más bien sus puntos de entrada WSGI se llama directamente "como si" un servidor HTTP estaba llamando.

Si desea probar un servidor real HTTP en marcha, entonces usted necesita Canoo 's webtest (u otros marcos equivalentes), no pythonpaste de - este último hará que para probar más rápido, evitando cualquier toma de capas y capas de HTTP por encima, pero no se puede probar una por separado, ya existente, ejecuta el servidor (como el SDK de la GAE) de esta manera.

Otros consejos

Con paste.proxy.TransparentProxy puede probar cualquier cosa que responde a una petición http ...

from webtest import TestApp
from paste.proxy import TransparentProxy
testapp = TestApp(TransparentProxy())
res = testapp.get("http://google.com")
assert res.status=="200 OK","failure....."

Yo te creo No Eres malentendido lo que hace WebTest. Algo así como app.get('/getreport') no debe hacer ningún tipo de solicitud a localhost en cualquier puerto. La belleza de WebTest es que no requiere la aplicación de realidad se ejecuta en cualquier servidor.

He aquí una cita de la sección "Lo que esto hace" de la WebTest docs:

Con esto se puede probar las aplicaciones web sin necesidad de iniciar un servidor HTTP, y sin meter en el marco Web acortando piezas de su aplicación que necesitan ser probadas. Las pruebas de carreras WebTest son totalmente equivalentes a cómo un servidor HTTP WSGI llamaría una aplicación.

scroll top