コード例 #1
0
 def test_messageRendering(self):
     """
     Test rendering of message detail for an extremely complex message.
     """
     msg = self.substore.findUnique(Message)
     msg.classifyClean()
     return renderLivePage(ThemedFragmentWrapper(MessageDetail(msg)))
コード例 #2
0
ファイル: test_athena.py プロジェクト: calston/tums
    def test_transportHookup(self):
        """
        When a LivePage is rendered, it needs to hook up to its transport,
        which is a special resource (associated with the particular LivePage
        object in memory).  This hookup is done by some special logic in
        LivePage.locateChild, among other places.  Let's make sure that we can
        look up the live page by its client ID with the default transport root.

        Athena's default transport root is whatever URL the page is rendered
        at.  In the case of this plugin, that will usually be
        http://localhost:8080/
        """
        w = WidgetPluginRoot(DummyLiveElement)
        page1, seg = w.locateChild(None, [''])
        page1.element.docFactory = stan('the element')
        page1.element.jsClass = u'Dummy.ClassName'

        def cbCheckPageByClientID(result):
            req = FakeRequest()
            ctx = WovenContext()
            ctx.remember(req, IRequest)
            page1prime, seg = w.locateChild(ctx, [page1.clientID])
            self.assertIdentical(page1prime, page1)

        renderDeferred = renderLivePage(page1)
        renderDeferred.addCallback(cbCheckPageByClientID)
        return renderDeferred
コード例 #3
0
ファイル: test_view.py プロジェクト: DalavanCloud/hyperbola
 def test_renderedScrollerRenderable(self):
     """
     L{hyperbola_view.BlogBlurbViewer.render_view} should return a
     L{hyperba.hyperbola_view.ShareScrollTable} that is renderable
     - i.e. has a docFactory and is not an orphan.
     """
     scroller = self._getRenderViewScroller()
     self.failUnless(scroller.fragmentParent is not None)
     return renderLivePage(FragmentWrapper(scroller))
コード例 #4
0
    def _renderFragment(self, fragment, *a, **k):
        """
        Render the fragment C{fragment}

        @rtype: L{twisted.internet.defer.Deferred} firing with string
        rendering result
        """
        fragment.docFactory = webtheme.getLoader(fragment.fragmentName)
        return renderLivePage(FragmentWrapper(fragment), *a, **k)
コード例 #5
0
 def test_messageRendering(self):
     """
     Test rendering of message detail for an extremely complex message.
     """
     msg = self.substore.findUnique(Message)
     msg.classifyClean()
     return renderLivePage(
                ThemedFragmentWrapper(
                    MessageDetail(msg)))
コード例 #6
0
    def _renderFragment(self, fragment, *a, **k):
        """
        Render the fragment C{fragment}

        @rtype: L{twisted.internet.defer.Deferred} firing with string
        rendering result
        """
        fragment.docFactory = webtheme.getLoader(fragment.fragmentName)
        return renderLivePage(FragmentWrapper(fragment), *a, **k)
コード例 #7
0
ファイル: test_view.py プロジェクト: DalavanCloud/hyperbola
 def test_rendering(self):
     """
     L{AddBlogPostDialogFragment} can be rendered as part of a Mantissa
     public Athena page.
     """
     page = PublicAthenaLivePage(self.store, self.fragment, None, None)
     request = FakeRequest()
     request.args = {'title': ['foo'],
                     'body': ['bar'],
                     'url': ['baz']}
     return renderLivePage(page, reqFactory=lambda: request)
コード例 #8
0
    def test_inboxComposeFragmentRendering(self):
        """
        Test rendering of the L{xquotient.compose.ComposeFragment} returned
        from L{xquotient.inbox.InboxScreen.getComposer}
        """
        installOn(compose.Composer(store=self.substore), self.substore)

        inbox = self.substore.findUnique(Inbox)
        inboxScreen = InboxScreen(inbox)

        composeFrag = inboxScreen.getComposer()

        return renderLivePage(ThemedFragmentWrapper(composeFrag))
コード例 #9
0
    def test_inboxComposeFragmentRendering(self):
        """
        Test rendering of the L{xquotient.compose.ComposeFragment} returned
        from L{xquotient.inbox.InboxScreen.getComposer}
        """
        installOn(compose.Composer(store=self.substore), self.substore)

        inbox = self.substore.findUnique(Inbox)
        inboxScreen = InboxScreen(inbox)

        composeFrag = inboxScreen.getComposer()

        return renderLivePage(
            ThemedFragmentWrapper(composeFrag))
コード例 #10
0
 def test_renderEcho(self):
     """
     Rendering the echo example element should produce a very simple text area.
     """
     from echothing.echobox import EchoElement
     TEXT = 'Echo Element'
     eb = EchoElement()
     erlp = ElementRenderingLivePage(eb)
     def checkContent(result):
         # The "liveElement" renderer inserts this, let's look for it to
         # make sure it rendered live:
         self.assertIn('id="athena:'+str(eb._athenaID)+'"', result)
         self.assertIn('athena:class="EchoThing.EchoWidget"', result)
         self.assertIn(TEXT, result)
     return renderLivePage(erlp).addCallback(checkContent)
コード例 #11
0
 def test_basicRendering(self):
     """
     Rendering the example element should produce a chat area.
     """
     from chatthing.chatterbox import ChatterElement, ChatRoom
     PROMPT = 'Choose your username: '******'s look for it to
         # make sure it rendered live:
         self.assertIn('id="athena:'+str(cb._athenaID)+'"', result)
         self.assertIn('athena:class="ChatThing.ChatterWidget"', result)
         self.assertIn(PROMPT, result)
     return renderLivePage(erlp).addCallback(checkContent)
コード例 #12
0
    def test_inboxRendering(self):
        """
        Test rendering of the inbox with a handful of extremely complex
        messages in it.
        """
        def deliverMessages():
            for i in xrange(5):
                makeMessage(self.createMIMEReceiver(),
                            self.aBunchOfRelatedParts, None)

        self.substore.transact(deliverMessages)

        inbox = self.substore.findUnique(Inbox)

        composer = compose.Composer(store=self.substore)
        installOn(composer, self.substore)

        return renderLivePage(ThemedFragmentWrapper(InboxScreen(inbox)))
コード例 #13
0
    def test_inboxRendering(self):
        """
        Test rendering of the inbox with a handful of extremely complex
        messages in it.
        """
        def deliverMessages():
            for i in xrange(5):
                makeMessage(
                    self.createMIMEReceiver(), self.aBunchOfRelatedParts, None)
        self.substore.transact(deliverMessages)

        inbox = self.substore.findUnique(Inbox)

        composer = compose.Composer(store=self.substore)
        installOn(composer, self.substore)

        return renderLivePage(
                   ThemedFragmentWrapper(
                       InboxScreen(inbox)))
コード例 #14
0
ファイル: test_view.py プロジェクト: fusionapp/methanal
def renderWidget(widget, debug=False):
    """
    Flatten and render a widget.

    @rtype: C{Deferred} -> C{ElementTree}
    @return: A deferred that fires with the parsed flattened output.
    """

    def parse(result):
        return etree.ElementTree(etree.fromstring("<widget>" + result + "</widget>"))

    def printIt(result):
        print result
        return result

    page = athena.LivePage(docFactory=loaders.stan(widget))
    widget.setFragmentParent(page)
    d = renderLivePage(page)
    if debug:
        d.addCallback(printIt)
    d.addCallback(parse)
    return d
コード例 #15
0
def renderWidget(widget, debug=False):
    """
    Flatten and render a widget.

    @rtype: C{Deferred} -> C{ElementTree}
    @return: A deferred that fires with the parsed flattened output.
    """
    def parse(result):
        return etree.ElementTree(
            etree.fromstring('<widget>' + result + '</widget>'))

    def printIt(result):
        print result
        return result

    page = athena.LivePage(docFactory=loaders.stan(widget))
    widget.setFragmentParent(page)
    d = renderLivePage(page)
    if debug:
        d.addCallback(printIt)
    d.addCallback(parse)
    return d
コード例 #16
0
ファイル: test_athena.py プロジェクト: calston/tums
    def test_livePageRendering(self):
        """
        Verify that an L{ElementRenderingLivePage} instantiated with a
        particular LiveElement properly renders that element.
        """
        element = DummyLiveElement()
        element.jsClass = u'Dummy.ClassName'
        element.docFactory = stan('the element')
        page = ElementRenderingLivePage(element)
        renderDeferred = renderLivePage(page)

        def cbRendered(result):
            document = parseString(result)
            titles = document.getElementsByTagName('title')
            self.assertEqual(len(titles), 1)
            self.assertEqual(titles[0].firstChild.nodeValue,
                             DummyLiveElement.__name__)
            divs = document.getElementsByTagName('div')
            self.assertEqual(len(divs), 1)
            self.assertEqual(divs[0].firstChild.nodeValue, 'the element')

        renderDeferred.addCallback(cbRendered)
        return renderDeferred
コード例 #17
0
    def _renderAggregateSearch(self, charset, term):
        """
        Set up a store, and render an aggregate search, with charset
        C{charset} and search term {term}

        @return: deferred firing with string render result
        """
        s = Store()

        installOn(TrivialSearchProvider(store=s), s)

        agg = search.SearchAggregator(store=s)
        installOn(agg, s)

        f = search.AggregateSearchResults(agg)
        f.docFactory = getLoader(f.fragmentName)

        page = FragmentWrapper(f)

        req = AccumulatingFakeRequest()
        req.args = dict(_charset_=[charset], term=[term])

        result = renderLivePage(page, reqFactory=lambda: req)
        return result
コード例 #18
0
ファイル: test_search.py プロジェクト: fusionapp/mantissa
    def _renderAggregateSearch(self, charset, term):
        """
        Set up a store, and render an aggregate search, with charset
        C{charset} and search term {term}

        @return: deferred firing with string render result
        """
        s = Store()

        installOn(TrivialSearchProvider(store=s), s)

        agg = search.SearchAggregator(store=s)
        installOn(agg, s)

        f = search.AggregateSearchResults(agg)
        f.docFactory = getLoader(f.fragmentName)

        page = FragmentWrapper(f)

        req = AccumulatingFakeRequest()
        req.args = dict(_charset_=[charset], term=[term])

        result = renderLivePage(page, reqFactory=lambda: req)
        return result
コード例 #19
0
ファイル: test_nit.py プロジェクト: StetHD/nevow
 def test_errorRendering(self):
     te = TestError(_DummyErrorHolder())
     return renderLivePage(FragmentWrapper(te)).addCallback(
         lambda output: self.assertIn(MESSAGE, output))
コード例 #20
0
ファイル: test_msgsearch.py プロジェクト: rcarmo/divmod.org
 def gotSearchResult((fragment,)):
     deferred = renderLivePage(ThemedFragmentWrapper(fragment))
     def rendered(res):
         self.assertIn('no results', res.lower())
         return service.stopService()
     return deferred.addCallback(rendered)
コード例 #21
0
 def test_errorRendering(self):
     te = TestError(_DummyErrorHolder())
     return renderLivePage(FragmentWrapper(te)).addCallback(
         lambda output: self.assertIn(MESSAGE, output))