Esempio n. 1
0
class LaterDataTest(RenderHelper):
    def data_later(self, context, data):
        return self.d

    def data_later2(self, context, data):
        return self.d2

    def setUp(self):
        self.d = Deferred()
        self.d2 = Deferred()
        self.r = rend.Page(
            docFactory=loaders.stan(
                html(data=self.data_later)[
                    "Hello ", str, " and " "goodbye ", str, span(data=self.data_later2, render=str)
                ]
            )
        )

    def test_deferredSupport(self):
        req = self.renderIt()
        self.assertEquals(req.v, "")
        self.d.callback("world")
        self.assertEquals(req.v, "<html>Hello world and goodbye world")
        self.d2.callback(".")
        self.assertEquals(req.v, "<html>Hello world and goodbye world.</html>")
Esempio n. 2
0
class LaterDataTest(RenderHelper):
    def data_later(self, context, data):
        return self.d

    def data_later2(self, context, data):
        return self.d2

    def setUp(self):
        self.d = Deferred()
        self.d2 = Deferred()
        self.r = rend.Page(docFactory=loaders.stan(
            tags.html(data=self.data_later)[
                'Hello ', str, ' and '
                'goodbye ',str,
                tags.span(data=self.data_later2, render=str)]))

    def test_deferredSupport(self):
        req = self.renderIt()
        self.assertEqual(req.v, '')
        self.d.callback("world")
        self.assertEqual(req.v, '<html>Hello world and goodbye world')
        self.d2.callback(".")
        self.assertEqual(req.v, '<html>Hello world and goodbye world.</html>')
Esempio n. 3
0
class LaterRenderTest(RenderHelper):
    def setUp(self):
        self.d = Deferred()
        self.d2 = Deferred()
        self.r = rend.Page(
            docFactory=loaders.stan(
                tags.html(data=self)[
                    'Hello ', tags.invisible[tags.invisible[tags.invisible[tags.invisible[deferit]]]],
                    deferdot,
                    ]
                )
            )

    def test_deferredSupport(self):
        req = self.renderIt()
        self.assertEqual(req.v, '<html>Hello ')
        self.d.callback("world")
        self.assertEqual(req.v, '<html>Hello world')
        self.d2.callback(".")
        self.assertEqual(req.v, '<html>Hello world.</html>')


    def test_deferredSupport2(self):
        req = self.renderIt()
        self.assertEqual(req.v, '<html>Hello ')
        self.d2.callback(".")
        self.assertEqual(req.v, '<html>Hello ')
        self.d.callback("world")
        self.assertEqual(req.v, '<html>Hello world.</html>')

    def test_deferredSupport3(self):
        self.r.buffered = True
        req = self.renderIt()
        self.assertEqual(req.v, '')
        self.d.callback("world")
        self.assertEqual(req.v, '')
        self.d2.callback(".")
        self.assertEqual(req.v, '<html>Hello world.</html>')

    def test_renderNestedDeferredCallables(self):
        """
        Test flattening of a renderer which returns a Deferred which fires with
        a renderer which returns a Deferred.
        """
        def render_inner(ctx, data):
            return defer.succeed('')

        def render_outer(ctx, data):
            return defer.succeed(render_inner)

        ctx = context.WovenContext()
        ctx.remember(None, inevow.IData)

        out = []
        d = twist.deferflatten(render_outer, ctx, out.append)
        def flattened(ign):
            self.assertEqual(out, [''])
        d.addCallback(flattened)
        return d


    def test_renderNestedDeferredErrorHandling(self):
        """
        Test that flattening a renderer which returns a Deferred which fires
        with a renderer which raises an exception causes the outermost Deferred
        to errback.
        """
        class NestedException(Exception):
            pass

        def render_inner(ctx, data):
            raise NestedException()

        def render_outer(ctx, data):
            return defer.succeed(render_inner)

        ctx = context.WovenContext()
        ctx.remember(None, inevow.IData)

        out = []
        d = twist.deferflatten(render_outer, ctx, out.append)
        return self.assertFailure(d, NestedException)
Esempio n. 4
0
class LaterRenderTest(RenderHelper):
    def setUp(self):
        self.d = Deferred()
        self.d2 = Deferred()
        self.r = rend.Page(
            docFactory=loaders.stan(
                html(data=self)["Hello ", invisible[invisible[invisible[invisible[deferit]]]], deferdot]
            )
        )

    def test_deferredSupport(self):
        req = self.renderIt()
        self.assertEquals(req.v, "<html>Hello ")
        self.d.callback("world")
        self.assertEquals(req.v, "<html>Hello world")
        self.d2.callback(".")
        self.assertEquals(req.v, "<html>Hello world.</html>")

    def test_deferredSupport2(self):
        req = self.renderIt()
        self.assertEquals(req.v, "<html>Hello ")
        self.d2.callback(".")
        self.assertEquals(req.v, "<html>Hello ")
        self.d.callback("world")
        self.assertEquals(req.v, "<html>Hello world.</html>")

    def test_deferredSupport3(self):
        self.r.buffered = True
        req = self.renderIt()
        self.assertEquals(req.v, "")
        self.d.callback("world")
        self.assertEquals(req.v, "")
        self.d2.callback(".")
        self.assertEquals(req.v, "<html>Hello world.</html>")
Esempio n. 5
0
class LaterRenderTest(RenderHelper):
    def setUp(self):
        self.d = Deferred()
        self.d2 = Deferred()
        self.r = rend.Page(docFactory=loaders.stan(
            html(
                data=self)['Hello ',
                           invisible[invisible[invisible[invisible[deferit]]]],
                           deferdot, ]))

    def test_deferredSupport(self):
        req = self.renderIt()
        self.assertEquals(req.v, '<html>Hello ')
        self.d.callback("world")
        self.assertEquals(req.v, '<html>Hello world')
        self.d2.callback(".")
        self.assertEquals(req.v, '<html>Hello world.</html>')

    def test_deferredSupport2(self):
        req = self.renderIt()
        self.assertEquals(req.v, '<html>Hello ')
        self.d2.callback(".")
        self.assertEquals(req.v, '<html>Hello ')
        self.d.callback("world")
        self.assertEquals(req.v, '<html>Hello world.</html>')

    def test_deferredSupport3(self):
        self.r.buffered = True
        req = self.renderIt()
        self.assertEquals(req.v, '')
        self.d.callback("world")
        self.assertEquals(req.v, '')
        self.d2.callback(".")
        self.assertEquals(req.v, '<html>Hello world.</html>')