コード例 #1
0
ファイル: test_layout.py プロジェクト: mcdonc/ptah
    def test_layout_simple_chain_multi_level(self):
        class View(view.View):
            def render(self):
                return "View: test"

        class LayoutTest(view.Layout):
            def render(self, content):
                return "<div>%s</div>" % content

        class LayoutPage(view.Layout):
            def render(self, content):
                return "<html>%s</html>" % content

        view.register_layout("", klass=LayoutPage, context=Root, parent=None)
        view.register_layout("test", klass=LayoutTest, parent=".")
        self._init_ptah()

        root = Root()
        context = Context(root)
        v = View(context, self.request)

        renderer = SimpleRenderer("test")
        res = renderer(context, self.request, viewMapper(View, "render"))

        self.assertTrue("<html><div>View: test</div></html>" in res.body)

        layout = query_layout(self.request, v.context, "test")
        self.assertTrue(isinstance(layout, LayoutTest))

        rootlayout = query_layout(self.request, context, "")
        self.assertTrue(isinstance(rootlayout, LayoutPage))

        rootlayout = query_layout(self.request, root, "")
        self.assertTrue(isinstance(rootlayout, LayoutPage))
コード例 #2
0
ファイル: test_layout.py プロジェクト: blaflamme/ptah
    def test_layout_simple_chain_multi_level(self):
        class LayoutTest(view.Layout):
            def render(self, content):
                return '<div>%s</div>'%content

        class LayoutPage(view.Layout):
            def render(self, content):
                return '<html>%s</html>'%content

        view.register_layout('', klass=LayoutPage, context=Root, parent=None)
        view.register_layout('test', klass=LayoutTest, parent='.')
        self._init_ptah()

        root = Root()
        context = Context(root)

        renderer = LayoutRenderer('test')
        res = renderer(context, self.request, 'View: test')

        self.assertTrue('<html><div>View: test</div></html>' in res)

        layout = query_layout(context, self.request, 'test')
        self.assertTrue(isinstance(layout, LayoutTest))

        rootlayout = query_layout(context, self.request, '')
        self.assertTrue(isinstance(rootlayout, LayoutPage))

        rootlayout = query_layout(root, self.request, '')
        self.assertTrue(isinstance(rootlayout, LayoutPage))
コード例 #3
0
ファイル: test_layout.py プロジェクト: mcdonc/ptah
    def test_layout_for_route(self):
        view.register_route("test-route", "/test/", use_global_views=True)
        view.register_layout("test", route="test-route")
        self._init_ptah()

        layout = query_layout(self.request, Context(), "test")
        self.assertIsNone(layout)

        request_iface = config.registry.getUtility(IRouteRequest, name="test-route")
        interface.directlyProvides(self.request, request_iface)

        layout = query_layout(self.request, Context(), "test")
        self.assertIsNotNone(layout)
コード例 #4
0
ファイル: test_layout.py プロジェクト: blaflamme/ptah
    def test_layout_for_route(self):
        view.register_route('test-route', '/test/', use_global_views=True)
        view.register_layout('test', route = 'test-route')
        self._init_ptah()

        layout = query_layout(Context(), self.request, 'test')
        self.assertIsNone(layout)

        request_iface = config.registry.getUtility(
            IRouteRequest, name='test-route')
        interface.directlyProvides(self.request, request_iface)

        layout = query_layout(Context(), self.request, 'test')
        self.assertIsNotNone(layout)
コード例 #5
0
ファイル: test_layout.py プロジェクト: blaflamme/ptah
    def test_layout_simple_view_without_template(self):
        class View(view.View):
            def render(self):
                return 'test'

        view.register_layout('test')
        self._init_ptah()

        v = View(Context(), self.request)

        layout = query_layout(v.context, self.request, 'test')
        layout.update()
        self.assertTrue('test' == layout.render(v.render()))
コード例 #6
0
ファイル: test_layout.py プロジェクト: blaflamme/ptah
    def test_layout_simple_multilevel(self):
        class Layout(view.Layout):
            def render(self, content):
                return '<html>%s</html>'%content

        view.register_layout('', klass=Layout, context=Root)
        self._init_ptah()

        root = Root()
        context = Context(root)

        # find layout for view
        layout = query_layout(context, self.request, '')
        self.assertTrue(isinstance(layout, Layout))

        renderer = LayoutRenderer('')
        res = renderer(context, self.request, 'View: test')

        self.assertTrue('<html>View: test</html>' in res)
コード例 #7
0
ファイル: test_layout.py プロジェクト: blaflamme/ptah
    def test_layout_simple_view(self):
        class View(view.View):
            def __call__(self):
                return 'View: test'
        class Layout(view.Layout):
            def render(self, rendered):
                return '<html>%s</html>'%rendered

        view.register_layout('test', klass=Layout)
        self._init_ptah()

        v = View(Context(), self.request)

        # find layout for view
        layout = query_layout(v.context, self.request, 'test')
        self.assertTrue(isinstance(layout, Layout))

        layout.update()
        self.assertEqual(layout.render(v()),
                         '<html>View: test</html>')
コード例 #8
0
ファイル: test_layout.py プロジェクト: blaflamme/ptah
    def test_layout_simple_declarative(self):
        global Layout

        class View(view.View):
            def __call__(self):
                return 'View: test'
        class Layout(view.Layout):
            view.layout('test', context=Context)
            def render(self, rendered):
                return '<html>%s</html>'%rendered

        self._init_ptah()

        v = View(Context(), self.request)

        layout = query_layout(v.context, self.request, 'test')
        self.assertTrue(isinstance(layout, Layout))

        layout.update()
        self.assertEqual(layout.render(v()),
                         '<html>View: test</html>')
コード例 #9
0
ファイル: test_layout.py プロジェクト: mcdonc/ptah
    def test_layout_simple_context(self):
        class View(view.View):
            layout = "test"

            def render(self):
                return "View: test"

        class Layout(view.Layout):
            def render(self, content):
                return "<html>%s</html>" % content

        view.register_layout("test", klass=Layout, context=Context)
        self._init_ptah()

        v = View(Context(), self.request)

        # find layout for view
        layout = query_layout(self.request, v.context, "test")
        self.assertTrue(isinstance(layout, Layout))

        layout.update()
        self.assertEqual(layout.render(v.render()), "<html>View: test</html>")
コード例 #10
0
ファイル: test_layout.py プロジェクト: mcdonc/ptah
    def test_layout_simple_multilevel(self):
        class View(view.View):
            def __call__(self):
                return "View: test"

        class Layout(view.Layout):
            def render(self, content):
                return "<html>%s</html>" % content

        view.register_layout("", klass=Layout, context=Root)
        self._init_ptah()

        root = Root()
        context = Context(root)
        v = View(context, self.request)

        # find layout for view
        layout = query_layout(self.request, context, "")
        self.assertTrue(isinstance(layout, Layout))

        renderer = SimpleRenderer(layout="")
        res = renderer(context, self.request, viewMapper(View))

        self.assertTrue("<html>View: test</html>" in res.body)
コード例 #11
0
ファイル: test_layout.py プロジェクト: blaflamme/ptah
 def test_layout_simple_notfound(self):
     v = view.View(Context(Context()), self.request)
     layout = query_layout(v.context, self.request, 'test')
     self.assertTrue(layout is None)