示例#1
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()