From db195ee4df9c0821d1bb6fb227bf2bc9d1f0a862 Mon Sep 17 00:00:00 2001 From: Pablo Hoffman Date: Mon, 6 May 2013 20:03:17 -0300 Subject: [PATCH] added more methods to mockserver --- scrapy/tests/mockserver.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/scrapy/tests/mockserver.py b/scrapy/tests/mockserver.py index b18bc13b9..5c10b1793 100644 --- a/scrapy/tests/mockserver.py +++ b/scrapy/tests/mockserver.py @@ -67,6 +67,36 @@ class Delay(Resource): request.write("Response delayed for %0.3f seconds\n" % n) request.finish() +class Status(Resource): + + isLeaf = True + + def render_GET(self, request): + n = getarg(request, "n", 200, type=int) + request.setResponseCode(n) + return "" + +class Partial(Resource): + + isLeaf = True + + def render_GET(self, request): + request.setHeader("Content-Length", "1024") + d = deferLater(reactor, 0, lambda: request) + d.addCallback(self._delayedRender) + return NOT_DONE_YET + + def _delayedRender(self, request): + request.write("partial content\n") + request.finish() + +class Drop(Partial): + + def _delayedRender(self, request): + request.write("this connection will be dropped\n") + request.channel.transport.loseConnection() + request.finish() + class Log(Resource): isLeaf = True @@ -82,8 +112,11 @@ class Root(Resource): def __init__(self): Resource.__init__(self) self.log = [] + self.putChild("status", Status()) self.putChild("follow", Follow()) self.putChild("delay", Delay()) + self.putChild("partial", Partial()) + self.putChild("drop", Drop()) self.putChild("log", Log(self.log)) def getChild(self, request, name):