Example #1
0
 def getResourceFor(self, root, url):
     r = testutil.FakeRequest()
     self.request = r
     r.postpath = url.split('/')
     deferred = util.maybeDeferred(
         appserver.NevowSite(root).getResourceFor, r)
     return util.deferredResult(deferred)
Example #2
0
 def getResourceFor(self, root, url):
     r = testutil.FakeRequest()
     self.request = r
     r.postpath = url.split('/')
     ctx = context.RequestContext(tag=self.request)
     return util.maybeDeferred(
         appserver.NevowSite(root).getPageContextForRequestContext, ctx)
Example #3
0
 def setUp(self):
     self.tmpdir = self.mktemp()
     os.mkdir(self.tmpdir)
     name = os.path.join(self.tmpdir, 'junk')
     f = file(name, 'w')
     f.write(800 * '0123456789')
     f.close()
     self.file = static.File(name)
     self.request = testutil.FakeRequest()
Example #4
0
def deferredRender(res):
    defres = testutil.FakeRequest()
    d = res.renderHTTP(
        context.PageContext(tag=res,
                            parent=context.RequestContext(tag=defres)))

    def accumulated(result, req):
        return req.accumulator

    return d.addCallback(accumulated, defres)
Example #5
0
def flatten(stan, ctx=None):
    """Given the stan and the optional context, return a string containing the
    representation of the tree in the given context.
    """
    if ctx is None:
        from nevow.context import RequestContext, PageContext
        ctx = PageContext(tag=None,
                          parent=RequestContext(tag=testutil.FakeRequest()))
        ctx.remember(None, inevow.IData)
    result = []
    list(iterflatten(stan, ctx, result.append))
    return tags.raw(''.join(result))
Example #6
0
def flt(stan, quote=True, client=None):
    """Flatten some stan to a string suitable for embedding in a javascript string.

    If quote is True, apostrophe, quote, and newline will be quoted
    """
    fr = testutil.FakeRequest()
    fr.getSession().setComponent(ILiveEvil, client)
    ctx = context.RequestContext(tag=fr)
    ctx.remember(None, inevow.IData)
    fl = flatten(stan, ctx=ctx)
    if quote:
        fl = jquote(fl)
    return fl
Example #7
0
def renderResource(uri, notFoundHandler=None):
    """Render a resource at some uri and return the response code and html.
    """

    root = Root()
    if notFoundHandler is not None:
        root.remember(notFoundHandler, inevow.ICanHandleNotFound)
    site = appserver.NevowSite(root)
    ctx = context.SiteContext(tag=site)

    request = testutil.FakeRequest(uri=uri)
    ctx = context.RequestContext(parent=ctx, tag=request)

    def waitmore(newctx):
        return defer.maybeDeferred(newctx.tag.renderHTTP, newctx).addCallback(lambda html: (request.code, html))
    return site.getPageContextForRequestContext(ctx).addCallback(waitmore)
Example #8
0
def deferredRender(res, request=None):
    if request is None:
        request = testutil.FakeRequest()
        request.d = defer.Deferred()

    d = util.maybeDeferred(res.renderHTTP,
        context.PageContext(
            tag=res, parent=context.RequestContext(
                tag=request)))

    def done(result):
        if isinstance(result, str):
            request.write(result)
        request.d.callback(request.accumulator)
        return result
    d.addCallback(done)
    return request.d
Example #9
0
def getResourceFor(root, url):
    """
    Perform traversal for C{url} beginning at C{root}.

    @param root: The L{nevow.inevow.IResource} at which to begin.

    @param url: The relative path string of the url of the resource to
        retrieve.
    @type url: L{bytes}

    @return: A L{Deferred} that fires with a L{PageContext} for the discovered
        resource.
    """
    request = testutil.FakeRequest()
    request.postpath = url.split('/')
    ctx = context.RequestContext(tag=request)
    return util.maybeDeferred(
        appserver.NevowSite(root).getPageContextForRequestContext, ctx)
Example #10
0
def flt(stan, quote=True, client=None, handlerFactory=None):
    """Flatten some stan to a string suitable for embedding in a javascript
    string.

    If quote is True, apostrophe, quote, and newline will be quoted
    """
    warnings.warn("[0.5] livepage.flt is deprecated. Don't use it.",
                  DeprecationWarning, 2)
    from nevow import testutil
    fr = testutil.FakeRequest()
    ctx = context.RequestContext(tag=fr)
    ctx.remember(client, IClientHandle)
    ctx.remember(handlerFactory, IHandlerFactory)
    ctx.remember(None, inevow.IData)

    fl = flat.flatten(stan, ctx=ctx)
    if quote:
        fl = fl.replace('\\', '\\\\').replace("'", "\\'").replace('\n', '\\n')
    return fl
Example #11
0
    def benchmark_longContextChainArg(self):
        from nevow import testutil
        ctx = context.RequestContext(tag=testutil.FakeRequest(
            args=dict(foo=["foo"], bar=["bar"])))
        for x in range(5):
            ## Do some factory contexts
            ctx = TestContext(parent=ctx)
        for x in range(100):
            ## Do a bunch of crap
            ctx = context.WovenContext(parent=ctx)
        ## Look for some request arguments

        loops = 1e4
        before = time.clock()
        for x in xrange(loops):
            ignored = ctx.arg('foo')
            ignored = ctx.arg('bar')
        after = time.clock()

        self.recordStat({"arg/(cpu sec)": loops / (after - before)})
Example #12
0
 def renderIt(self):
     req = testutil.FakeRequest()
     self.r.renderHTTP(context.PageContext(tag=self.r, parent=context.RequestContext(tag=req)))
     return req
Example #13
0
def getResource(root, path):
    return appserver.NevowSite(root).getPageContextForRequestContext(
        context.RequestContext(tag=testutil.FakeRequest(uri=path)))
Example #14
0
def getResource(root, path):
    ctx = context.RequestContext(tag=testutil.FakeRequest(uri=path))
    return appserver.NevowSite(root).getPageContextForRequestContext(ctx).addCallback(
        lambda newctx: newctx.tag)