Estoy desarrollando un servidor twisted.web - consiste en algunos recursos que además de renderizar cosas usan adbapi para buscar algunos datos y escribir algunos datos en la base de datos postgresql. Intento averiguar cómo escribir una prueba unittest de prueba que verifique la representación de recursos sin usar net (en otras palabras: eso inicializaría un recurso, lo generaría una solicitud ficticia, etc.).¿Cómo probar el recurso web retorcido con prueba?
Supongamos que el recurso Ver es una hoja simple que en render_GET devuelve NOT_DONE_YET y juega con adbapi para producir texto simple como resultado. Ahora, he escrito este código inútil y no puedo llegar a hacer lo que realmente iniciar el recurso y producir algún tipo de respuesta sensata:
from twisted.trial import unittest
from myserv.views import View
from twisted.web.test.test_web import DummyRequest
class ExistingView(unittest.TestCase):
def test_rendering(self):
slug = "hello_world"
view = View(slug)
request = DummyRequest([''])
output = view.render_GET(request)
self.assertEqual(request.responseCode, 200)
La salida es ... 1. También he intentado tal enfoque: salida = request.render (ver) pero el mismo resultado = 1. ¿Por qué? Sería muy agradecido por algunos ejemplo cómo escribir tales unittest!
Gracias! Parece que funciona, pero retorcido nunca devuelve el resultado - He comprobado con impresión, espera después de request.notify Finish(). La babosa que he probado funciona bien cuando se accede. Qué podría estar mal? – pielgrzym
Se detiene en 'request.setHeader' y request.setHost; lo más probable es que no estén implementados en DummyRequest (o en uno de ellos). – pielgrzym
Sí falla en: setHeader y getCookie - Creo que subclasando a DummyRequest y creando la funcionalidad cookie y setHeader lo resolverá :) – pielgrzym