def renderResource(self, resource, path): s = appserver.NevowSite(resource) channel = DummyChannel() channel.site = s r = appserver.NevowRequest(channel, True) r.path = path return r.process()
def renderPage(res, topLevelContext=context.WebContext, reqFactory=FakeRequest): """ Render the given resource. Return a Deferred which fires when it has rendered. """ req = reqFactory() ctx = topLevelContext(tag=res) ctx.remember(req, inevow.IRequest) render = appserver.NevowRequest(None, True).gotPageContext result = render(ctx) result.addCallback(lambda x: req.accumulator) return result
def test_connectionLost(self): """ L{Request.finish} is not called when the connection is lost before rendering has finished. """ rendering = Deferred() class Res(Render): def renderHTTP(self, ctx): return rendering site = appserver.NevowSite(Res()) request = appserver.NevowRequest(testutil.FakeChannel(site), True) request.connectionLost(Exception("Just Testing")) rendering.callback(b"finished") self.assertFalse(request.finished, "Request was incorrectly marked as finished.")
def test_renderPOST(self): """ A POST request with form data has the form data parsed into C{request.fields}. """ class Res(Render): def renderHTTP(self, ctx): return b'' s = appserver.NevowSite(Res()) channel = DummyChannel() channel.site = s r = appserver.NevowRequest(channel, True) r.method = b'POST' r.path = b'/' r.content = StringIO(b'foo=bar') self.successResultOf(r.process()) self.assertEquals(r.fields[b'foo'].value, b'bar')
def renderResourceReturnTransport(resource, path, method): """ Perform a synthetic request for the given resource. This is like L{renderResource} but with a different return value. @return: All of the bytes written to the transport as a result of the rendering. """ s = appserver.NevowSite(resource) channel = DummyChannel() channel.site = s r = appserver.NevowRequest(channel, True) r.path = path if method is not None: r.method = method d = r.process() d.addCallback(lambda ignored: channel.transport.written.getvalue()) return d
def renderResource(resource, path, method=None): """ Perform a synthetic request for the given resource. @param resource: The L{nevow.inevow.IResource} from which to begin processing. @param path: The path of the url to use in processing. @param method: An optional request method to use. @return: The return value of L{NevowRequest.process} for this resource, path, and method. """ s = appserver.NevowSite(resource) channel = DummyChannel() channel.site = s r = appserver.NevowRequest(channel, True) r.path = path if method is not None: r.method = method return r.process()
def renderResource(self, resource, path): s = appserver.NevowSite(resource) r = appserver.NevowRequest(testutil.FakeChannel(s), True) r.path = path return r.process()