def test_get_homepage(self): menu = Menu(id=1, parent=None, weight=1) self.session.add(menu) page_1 = Page(id=2, parent=menu, weight=1) self.session.add(page_1) page_2 = Page(id=3, parent=menu, weight=2) self.session.add(page_2) page_3 = Page(id=4, parent=menu, weight=3) self.session.add(page_3) page_4 = Page(id=5, parent=menu, weight=4, home=True) self.session.add(page_4) it = Language(lang=u'it', country=u'it') self.session.add(it) en = Language(lang=u'en', country=u'gb') self.session.add(en) page_info_1 = PageInfo(id=1, label='Home', title='Pagina Principale', url_part='index', content='', node=page_4, lang=it) self.session.add(page_info_1) page_info_2 = PageInfo(id=2, label='Home', title='Main Page', url_part='index', content='', node=page_4, lang=en) self.session.add(page_info_2) page_info_3 = PageInfo(id=3, label='Home 2', title='Pagina Principale 2', url_part='index', content='', node=page_1, lang=it) self.session.add(page_info_1) page_info_4 = PageInfo(id=4, label='Home 2', title='Main Page 2', url_part='index', content='', node=page_1, lang=en) self.session.add(page_info_2) self.session.flush() self.assertEqual(PageInfo.get_homepage(self.session, it), page_info_1) self.assertEqual(PageInfo.get_homepage(self.session, en), page_info_2) page_4.home = False self.assertEqual(PageInfo.get_homepage(self.session, it), page_info_3) self.assertEqual(PageInfo.get_homepage(self.session, en), page_info_4)
def test_get_translation(self): self.populate(self.session) it = self.session.query(Language).filter(Language.lang == 'it').one() en = self.session.query(Language).filter(Language.lang == 'en').one() es = self.session.query(Language).filter(Language.lang == 'es').one() home = Page.get_homepage(self.session) it_translation = home.get_translation(it) self.assertEqual(it_translation, PageInfo.get_homepage(self.session, it)) en_translation = home.get_translation(en) self.assertEqual(en_translation, PageInfo.get_homepage(self.session, en)) es_translation = home.get_translation(es) self.assertEqual(es_translation, PageInfo.get_homepage(self.session, es))
def redirect_to_homepage(context, request): lang = get_negotiated_language(request) page = PageInfo.get_homepage(request.db_session, lang) raise HTTPMovedPermanently(location='%s.html' % page.url)