Example #1
0
    def test_view_with_template(self):
        view.register_view(
            'index.html', view.View, Context,
            template=view.template('ptah.view.tests:templates/test.pt'))

        self._init_ptah()

        res = view.render_view('index.html', Context(), self.request)
        self.assertEqual(res.body.strip(), '<div>My snippet</div>')
Example #2
0
    def test_view_httpresp_from_render(self):
        class MyView(view.View):
            def render(self):
                raise HTTPFound()

        view.register_view('index.html', MyView, Context)
        self._init_ptah()

        resp = view.render_view('index.html', Context(), self.request)
        self.assertIsInstance(resp, HTTPFound)
Example #3
0
    def test_view_httpresp_from_update(self):
        class MyView(view.View):
            def update(self):
                raise HTTPForbidden()

        view.register_view('index.html', MyView, Context,
                          template = view.template('templates/test.pt'))
        self._init_ptah()

        resp = view.render_view('index.html', Context(), self.request)
        self.assertIsInstance(resp, HTTPForbidden)
Example #4
0
    def test_view_register_view_err1(self):
        # default 'render' implementation
        class MyView(view.View):
            pass

        view.register_view('index.html', MyView, Context)
        self._init_ptah()

        context = Context()
        self.assertTrue(
            view.render_view('index.html', context,
                            self.request).content_length ==0)
Example #5
0
File: views.py Project: mcdonc/ptah
    def wrap(context, request):
        if context.view:
            item = cms.load(context.view)
            if item is None:
                return renderer(context, request)

            request.context = item
            return view.render_view('', item, request)

        view = renderer(context, request)
        view.update()
        return view.render()
Example #6
0
    def test_view_custom_response(self):
        class MyView(view.View):
            def render(self):
                response = self.request.response
                response.status = '202'
                return 'test'

        view.register_view('index.html', MyView, Context)
        self._init_ptah()

        res = view.render_view('index.html', Context(), self.request)
        self.assertEqual(res.status, '202 Accepted')
        self.assertEqual(res.body, 'test')
Example #7
0
    def test_view_register_view_layout(self):
        class MyLayout(view.Layout):
            def render(self, rendered):
                return '<html>%s</html>'%rendered

        class MyView(view.View):
            def render(self):
                return 'test'

        view.register_view('index.html', MyView, Context)
        view.register_layout('', Context, klass=MyLayout)
        self._init_ptah()

        context = Context()
        res = view.render_view('index.html', context, self.request)
        self.assertTrue('<html>test</html>' in res.body)
Example #8
0
    def test_view_with_decorator(self):
        def deco(func):
            def func(context, request):
                return 'decorator'
            return func

        global DecoView

        @deco
        class DecoView(view.View):
            view.pview('index.html', Context)

        self._init_ptah()

        res = view.render_view('index.html', Context(), self.request)
        self.assertEqual(res.body, 'decorator')
Example #9
0
    def test_view_register_view_disable_layout1(self):
        class MyLayout(view.Layout):
            def render(self, rendered):
                return '<html>%s</html>'%rendered

        class MyView(view.View):
            def render(self):
                return 'test'

        view.register_view('index.html', MyView, Context, layout=None)
        view.register_layout('', Context, klass=MyLayout)
        self._init_ptah()

        context = Context()
        res = view.render_view('index.html', context, self.request)
        self.assertEqual(res.body, 'test')

        v = MyView(None, self.request)
        self.assertEqual(MyLayout(v, self.request).render(
                v.render()), '<html>test</html>')