2008-09-20 14 views
11

Me gustaría probar las respuestas de la aplicación web de Google App Engine.WSGIApplication, por ejemplo, solicite la URL '/' y pruebe que el código de estado de las respuestas es 200, usando GAEUnit. ¿Cómo puedo hacer esto?¿Cómo puedo probar las respuestas de la aplicación WSGI de webapp en Google App Engine?

Me gustaría utilizar el marco de trabajo de webapp y GAEUnit, que se ejecuta dentro del entorno limitado de App Engine (lamentablemente WebTest no funciona dentro de la zona de pruebas).

Respuesta

1

En realidad no WebTest trabajo dentro del recinto de seguridad, siempre y cuando se comente

import webbrowser 

en webtest/__ init__.py

+0

parches 'webtest/__ init __ py' ya no es necesario, como navegador web solamente ha sido importada por el' webtest. aplicación: función showbrowser' si se llama. Consulte https://github.com/Pylons/webtest/commit/78076424c219935ee556aab84d943d5949530531 y https://github.com/Pylons/webtest/commit/53889b57fe16c57fd7f532953d2e15bfaba7e5b3 –

11

He añadido un sample application al proyecto GAEUnit que demuestra cómo escribir y ejecuta una prueba web usando GAEUnit. El ejemplo incluye una versión ligeramente modificada del módulo 'webtest' ('Import webbrowser' está comentado, como recomienda David Coffin).

Aquí está el archivo 'web_tests.py' de la aplicación de ejemplo 'prueba' directorio:.

import unittest 
from webtest import TestApp 
from google.appengine.ext import webapp 
import index 

class IndexTest(unittest.TestCase): 

    def setUp(self): 
    self.application = webapp.WSGIApplication([('/', index.IndexHandler)], debug=True) 

    def test_default_page(self): 
    app = TestApp(self.application) 
    response = app.get('/') 
    self.assertEqual('200 OK', response.status) 
    self.assertTrue('Hello, World!' in response) 

    def test_page_with_param(self): 
    app = TestApp(self.application) 
    response = app.get('/?name=Bob') 
    self.assertEqual('200 OK', response.status) 
    self.assertTrue('Hello, Bob!' in response) 
+0

Parcheando 'webtest/__ init __. Py' ya no es necesario, ya que webbrowser es solo importado por la función 'webtest.app: showbrowser' si se llama. Consulte https://github.com/Pylons/webtest/commit/78076424c219935ee556aab84d943d5949530531 y https://github.com/Pylons/webtest/commit/53889b57fe16c57fd7f532953d2e15bfaba7e5b3. –