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)
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)
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()
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)
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))
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
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)
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
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)
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
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)})
def renderIt(self): req = testutil.FakeRequest() self.r.renderHTTP(context.PageContext(tag=self.r, parent=context.RequestContext(tag=req))) return req
def getResource(root, path): return appserver.NevowSite(root).getPageContextForRequestContext( context.RequestContext(tag=testutil.FakeRequest(uri=path)))
def getResource(root, path): ctx = context.RequestContext(tag=testutil.FakeRequest(uri=path)) return appserver.NevowSite(root).getPageContextForRequestContext(ctx).addCallback( lambda newctx: newctx.tag)