コード例 #1
0
 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()
コード例 #2
0
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
コード例 #3
0
    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.")
コード例 #4
0
    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')
コード例 #5
0
ファイル: test_appserver.py プロジェクト: schwabe/nevow
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
コード例 #6
0
ファイル: test_appserver.py プロジェクト: schwabe/nevow
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()
コード例 #7
0
ファイル: test_appserver.py プロジェクト: calston/tums
 def renderResource(self, resource, path):
     s = appserver.NevowSite(resource)
     r = appserver.NevowRequest(testutil.FakeChannel(s), True)
     r.path = path
     return r.process()