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_register_view_function_requestonly(self):
        def render(request):
            return '<html>request: %s</html>'%(request is not None)

        view.register_view('index.html', render)
        self._init_ptah()

        context = Context()
        v = self._view('index.html', context, self.request)
        self.assertEqual(v.body, '<html>request: True</html>')
Example #3
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 #4
0
    def test_view_register_view_function_requestonly_template(self):
        def render(request):
            return {}

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

        context = Context()
        v = self._view('index.html', context, self.request)
        self.assertEqual(v.body.strip(), '<div>My snippet</div>')
Example #5
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 #6
0
    def test_view_subpath_with_template(self):
        class MyView(view.View):
            @view.subpath(renderer=Renderer(view.template('templates/test.pt')))
            def validate(self):
                return {}

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

        self.request.subpath = ('validate',)
        v = self._view('index.html', Context(), self.request)
        self.assertEqual(v.body.strip(), '<div>My snippet</div>')
Example #7
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 #8
0
    def test_view_register_view(self):
        class MyView(view.View):
            def render(self):
                return '<html>view</html>'

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

        context = Context()
        v = self._view('index.html', context, self.request)
        self.assertEqual(v.status, '200 OK')
        self.assertEqual(v.content_type, 'text/html')
        self.assertEqual(v.body, '<html>view</html>')
Example #9
0
    def test_view_subpath_json_renderer(self):
        class MyView(view.View):
            @view.subpath(renderer=view.json)
            def validate(self):
                return {'text': 'Validate method'}

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

        self.request.subpath = ('validate',)
        v = self._view('index.html', Context(), self.request)
        self.assertTrue(isinstance(v, Response))
        self.assertEqual(v.body, '{"text": "Validate method"}')
Example #10
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 #11
0
    def test_view_register_view_class_requestonly(self):
        class MyView(object):
            def __init__(self, request):
                self.request = request

            def render(self):
                return '<html>view: %s</html>'%(self.request is not None)

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

        context = Context()
        v = self._view('index.html', context, self.request)
        self.assertEqual(v.body, '<html>view: True</html>')
Example #12
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 #13
0
    def test_view_register_secured_view(self):
        from ptah.view.renderers import \
            default_checkpermission, set_checkpermission

        def render(request):
            return '<html>Secured view</html>'

        view.register_view('index.html', render,
                          permission = 'Protected')

        self._init_ptah()

        set_checkpermission(default_checkpermission)

        context = Context()
        v = self._view('index.html', context, self.request)
        self.assertEqual(v.body, '<html>Secured view</html>')

        class SimpleAuth(object):
            interface.implements(IAuthenticationPolicy)

            def effective_principals(self, request):
                return (1,2)

        class Authz(object):
            interface.implements(IAuthorizationPolicy)

            allowed = False

            def permits(self, context, princials, permission):
                return self.allowed

        config.registry.registerUtility(SimpleAuth(), IAuthenticationPolicy)
        config.registry.registerUtility(Authz(), IAuthorizationPolicy)

        set_checkpermission(default_checkpermission)

        context = Context()
        resp = self._view('index.html', context, self.request)
        self.assertIsInstance(resp, HTTPForbidden)

        Authz.allowed = True
        v = self._view('index.html', context, self.request)
        self.assertEqual(v.body, '<html>Secured view</html>')
Example #14
0
    def test_view_subpath_call(self):
        class MyView(view.View):
            @view.subpath()
            def validate(self):
                return 'Validate method'

            def render(self):
                return 'Render method'

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

        v = self._view('index.html', Context(), self.request)
        self.assertEqual(v.body, 'Render method')

        self.request.subpath = ('validate',)
        v = self._view('index.html', Context(), self.request)
        self.assertTrue(isinstance(v, str))
        self.assertEqual(v, 'Validate method')
Example #15
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>')
Example #16
0
    def test_view_register_callable_permission(self):
        def render(request):
            return '<html>Secured view</html>'

        allowed = False
        def checkPermission(context, request):
            return allowed

        view.register_view('index.html', render,
                          permission = checkPermission)

        self._init_ptah()

        context = Context()
        self.assertRaises(
            HTTPForbidden, self._view, 'index.html', context, self.request)

        allowed = True
        v = self._view('index.html', context, self.request)
        self.assertEqual(v.body, '<html>Secured view</html>')
Example #17
0
    def test_view_subpath_class_requestonly(self):
        class MyView(object):
            def __init__(self, request):
                self.request = request

            @view.subpath()
            def validate(self):
                return 'Validate method: %s'%(self.request is not None)

            def render(self):
                return 'Render method'

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

        v = self._view('index.html', Context(), self.request)
        self.assertEqual(v.body, 'Render method')

        self.request.subpath = ('validate',)
        v = self._view('index.html', Context(), self.request)
        self.assertTrue(isinstance(v, str))
        self.assertEqual(v, 'Validate method: True')
Example #18
0

class MembershipView(view.View):
    view.pview(route='frontend-membership', layout='page',
               template = view.template('newui/membership.pt'))

    policy = 0

    def update(self):
        uri = authenticated_userid(self.request)
        user = User.getByURI(uri)
        info = {'email': user.email,
                'policy': getattr(user, 'type', 0)}
        self.policy = info['policy']
        self.user = user
        self.isAnon = user is None
        return info


view.register_view(
    route='frontend-membership1', layout='page',
    template = view.template('newui/membership-free.pt'))

view.register_view(
    route='frontend-membership2', layout='page',
    template = view.template('newui/membership1.pt'))

view.register_view(
    route='frontend-membership3', layout='page',
    template = view.template('newui/membership2.pt'))
Example #19
0
    raise HTTPFound(location="/index.html")


@view.pview(route="frontend-home", layout="page", template=view.template("newui/homepage.pt"))
def homepage(request):
    return {"isanon": 1 if authenticated_userid(request) else 0}


@view.pview(route="frontend-themes")
def themes(request):
    raise HTTPFound(location="/themes/")


view.register_route("frontend-home", "/index.html")
view.register_route("frontend-favicon", "/favicon.ico")
view.register_route("frontend-robots", "/robots.txt")
view.register_route("frontend-policy", "/privacy-policy.html")
view.register_route("frontend-toc", "/terms-of-service.html")
view.register_route("frontend-disabled", "/disabled.html")
view.register_route("frontend-404", "/404.html")
view.register_route("frontend-themes", "/themes")


view.register_view(route="frontend-policy", layout="page", template=view.template("newui/privacy-policy.pt"))

view.register_view(route="frontend-toc", layout="page", template=view.template("newui/terms-of-service.pt"))

view.register_view(route="frontend-disabled", layout="page", template=view.template("newui/disabled_site.pt"))

view.register_view(route="frontend-404", layout="page", template=view.template("newui/404.pt"))