示例#1
0
        def do_it(model):
            # visible is None
            node = model()
            context = BasePageResource(node)
            self.assertRaises(HTTPNotFound, PageView, context, self.request)

            # visible is False
            node = model(visible=False)
            context = BasePageResource(node)
            self.assertRaises(HTTPNotFound, PageView, context, self.request)
示例#2
0
    def test_redirect_200_to_self(self):
        """ Redirect 200 to itself.

        redirect_type = 200
        redirect_url  = None
        redirect_page = self
        """
        node = WebPage(
            id=1, visible=True,
            redirect_type=200, redirect_page=1
        )
        node.redirect = node
        context = BasePageResource(node)
        context.template = 'json'
        response = PageView(context, self.request).page_with_redirect()
        self.assertEqual(response.json['page'], 1)
示例#3
0
 def do_it(redirect_code):
     node2 = WebPage(id=2)
     node = WebPage(
         id=1, visible=True,
         redirect_type=redirect_code, redirect_page=2, redirect=node2
     )
     context = BasePageResource(node)
     view = PageView(context, self.request)
     self.assertRaises(HTTPNotFound, view.page_with_redirect)
示例#4
0
    def test_redirect_200(self):
        """ Redirect 200 w/o page.

        redirect_type = 200
        redirect_url  = None
        redirect_page = None
        """
        node = WebPage(visible=True, redirect_type=200)
        context = BasePageResource(node)
        view = PageView(context, self.request).page_with_redirect()
        self.assertEqual(view['page'], node)
示例#5
0
        def do_it(redirect_code):
            URL = 'http://example.org'
            node = WebPage(
                visible=True, redirect_type=301, redirect_url=URL
            )

            # 301
            context = BasePageResource(node)
            view = PageView(context, self.request).page_with_redirect()
            self.assertEqual(view.status_code, 301)
            self.assertEqual(view.location, 'http://example.org')
示例#6
0
    def test_redirect_200_to_url(self):
        """ Redirect 200 to external URL.

        redirect_type = 200
        redirect_url  = http://example.org
        redirect_page = None
        """
        URL = 'http://example.org'
        node = WebPage(
            visible=True, redirect_type=200, redirect_url=URL
        )
        context = BasePageResource(node)
        view = PageView(context, self.request)
        self.assertRaises(HTTPNotFound, view.page_with_redirect)
示例#7
0
    def test_redirect_page_with_out_type(self):
        """ Redirect to page w/o redirect type.

        redirect_type = None
        redirect_url  = None
        redirect_page = 2
        """
        node2 = WebPage(id=2)
        node = WebPage(
            id=1, visible=True,
            redirect_page=2, redirect=node2
        )
        context = BasePageResource(node)
        view = PageView(context, self.request)
        self.assertRaises(HTTPNotFound, view.page_with_redirect)
示例#8
0
    def test_redirect_200_to_not_visible_page(self):
        """ Redirect 200 to not visible page.

        redirect_type = 200
        redirect_url  = None
        redirect_page = 2
        """
        node2 = WebPage(id=2)
        node = WebPage(
            id=1, visible=True,
            redirect_type=200, redirect_page=2, redirect=node2
        )
        context = BasePageResource(node)
        view = PageView(context, self.request)
        self.assertRaises(HTTPNotFound, view.page_with_redirect)
示例#9
0
    def test_redirect_url_with_out_type(self):
        """ Redirect to external URL w/o type.

        redirect_type = None
        redirect_url  = http://example.org
        redirect_page = None
        """
        URL = 'http://example.org'
        node = WebPage(
            visible=True, redirect_url=URL,
        )

        context = BasePageResource(node)
        view = PageView(context, self.request).page_with_redirect()
        self.assertEqual(view.status_code, 302)
        self.assertEqual(view.location, 'http://example.org')
示例#10
0
        def do_it(redirect_code):
            self.drop_db()
            self.create_db()

            node2 = WebPage(id=2, visible=True, name='node2', slug='node2')
            node1 = WebPage(
                id=1, visible=True, name='node', slug='node',
                redirect_type=redirect_code, redirect=node2
            )
            node3 = WebPage(id=3, visible=True, name='node3', slug='node3',
                            parent_id=2)
            node4 = WebPage(
                id=4, visible=True, name='node4', slug='node4',
                redirect_type=redirect_code, redirect=node3
            )
            node5_inheritance = Gallery(
                id=5, visible=True, name='node5', slug='node5')
            node6 = WebPage(
                id=6, visible=True, name='node6', slug='node6',
                redirect_type=redirect_code, redirect_page=node5_inheritance.id
            )

            self.dbsession.add(node1)
            self.dbsession.add(node2)
            self.dbsession.flush()
            self.dbsession.add(node3)
            self.dbsession.add(node4)
            self.dbsession.add(node5_inheritance)
            self.dbsession.add(node6)
            self.dbsession.commit()

            # 301
            context = BasePageResource(node1)
            context.dbsession = self.dbsession
            view = PageView(context, self.request).page_with_redirect()
            self.assertEqual(view.status_code, redirect_code)
            self.assertEqual(view.location, 'http://example.com/node2/')

            context = BasePageResource(node4)
            view = PageView(context, self.request).page_with_redirect()
            self.assertEqual(view.status_code, redirect_code)
            self.assertEqual(view.location,
                             'http://example.com/node2/node3/')

            context = BasePageResource(node6)
            view = PageView(context, self.request).page_with_redirect()
            self.assertEqual(view.status_code, redirect_code)
            self.assertEqual(view.location,
                             'http://example.com/gallery/node5/')
            self.dbsession.close()
示例#11
0
    def test_redirect_simultaneously_url_and_page(self):
        """ Redirect simultaneously to URL and Page.

        redirect_type = None
        redirect_url  = http://example.org
        redirect_page = 2
        """
        URL = 'http://example.org'
        node2 = WebPage(id=2, visible=True)
        node = WebPage(
            visible=True, redirect_url=URL,
            redirect_page=2, redirect=node2
        )

        context = BasePageResource(node)
        view = PageView(context, self.request)
        self.assertRaises(HTTPNotFound, view.page_with_redirect)
示例#12
0
 def do_it(model):
     node = model(visible=True)
     context = BasePageResource(node)
     view = PageView(context, self.request).page_with_redirect()
     self.assertEqual(view['page'], node)