Estoy tratando de probar un controlador con webapp2 y me encuentro con lo que tiene que ser un pequeño error estúpido.¿Cómo obtener uri_for con webapp2 en prueba unitaria?
Me gustaría ser capaz de utilizar webapp2.uri_for en la prueba, pero me parece que no puede hacer eso:
def test_returns_200_on_home_page(self):
response = main.app.get_response(webapp2.uri_for('index'))
self.assertEqual(200, response.status_int)
Si acabo de hacer main.app.get_response('/')
funciona muy bien.
La excepción recibida es:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/case.py", line 318, in run
testMethod()
File "tests.py", line 27, in test_returns_200_on_home_page
webapp2.uri_for('index')
File "/Users/.../webapp2_example/lib/webapp2.py", line 1671, in uri_for
return request.app.router.build(request, _name, args, kwargs)
File "/Users/.../webapp2_example/lib/webapp2_extras/local.py", line 173, in __getattr__
return getattr(self._get_current_object(), name)
File "/Users/.../webapp2_example/lib/webapp2_extras/local.py", line 136, in _get_current_object
raise RuntimeError('no object bound to %s' % self.__name__)
RuntimeError: no object bound to request
¿Hay alguna configuración tonta que me falta?
Gracias por la respuesta @moraes. Lo intentaré cuando llegue a casa del trabajo. Realmente me gusta webapp2 por cierto, ¡gracias por compartirlo con nosotros! – Aaron
Eso tampoco parece serlo. ahora recibo: Archivo "/Users/.../webapp2_example/lib/webapp2.py", línea 1671, en uri_for return request.app.router.build (request, _name, args, kwargs) AttributeError: 'NoneType 'objeto no tiene atributo' enrutador ' – Aaron
De hecho, no es tan fácil. Corregí el fragmento; Espero que funcione ahora. – moraes