コード例 #1
0
ファイル: test_node.py プロジェクト: asidev/aybu-core
    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, home=True)
        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)
        self.session.add(page_4)

        self.assertEqual(page_1, Page.get_homepage(self.session))

        page_2.home = True

        with self.assertRaises(MultipleResultsFound):
            Page.get_homepage(self.session)

        page_1.home = False
        self.assertEqual(page_2, Page.get_homepage(self.session))

        page_2.home = False
        self.assertEqual(page_1, Page.get_homepage(self.session))

        page_1.home = False
        section = Section(id=6, parent=menu, weight=5)
        self.session.add(section)
        page_1.parent = section
        page_2.parent = section
        page_3.parent = section
        page_4.parent = section

        self.assertIn(Page.get_homepage(self.session), (page_1, page_2, page_3,
                                                        page_4))
コード例 #2
0
ファイル: test_node.py プロジェクト: asidev/aybu-core
    def test_before_flush(self):

        en = Language(id=2, lang="en", country="GB", enabled=True)
        menu = Menu(id=1, weight=1)
        self.session.add(menu)
        menu_info = MenuInfo(id=29, label=u"Main Menu", lang=en, node=menu)
        index = Page(id=2, home=True, parent=menu, weight=1)
        index_info = PageInfo(id=2, label="Home", title="Home Page",
                              url_part="index", content="<h2>Home Page</h2>",
                              lang=en, node=index)
        company = Page(id=3, home=True, parent=menu, weight=2)
        company_info = PageInfo(id=3, label="Company", title="Company",
                                url_part="company", content="<h2>Company</h2>",
                                lang=en, node=company)
        team = Page(id=4, home=True, parent=company, weight=3)
        team_info = PageInfo(id=4, label="Team", title="Team",
                              url_part="team", content="<h2>Team</h2>",
                              lang=en, node=team)
        dummy = Page(id=5, home=True, parent=menu, weight=4)

        parent_url = '/' + en.lang
        self.assertEqual(index_info.parent_url, parent_url)
        index_info_url = parent_url + '/' + index_info.url_part
        self.assertEqual(index_info.url, index_info_url)
        self.assertEqual(company_info.parent_url, parent_url)
        company_info_url = parent_url + '/' + company_info.url_part
        self.assertEqual(company_info.url, company_info_url)
        self.assertEqual(team_info.parent_url, company_info.url)
        team_info_url = company_info.url + '/' + team_info.url_part
        self.assertEqual(team_info.url, team_info_url)

        team_info = self.session.query(PageInfo).filter(PageInfo.id == 4).one()
        self.assertEqual(team_info.url, team_info_url)

        team.parent = menu
        self.session.flush()
        self.assertEqual(team_info.parent_url, parent_url)
        self.assertEqual(team_info.url, parent_url + '/' + team_info.url_part)

        team_info.node = dummy
        self.session.flush()
        team_info = self.session.query(PageInfo).filter(PageInfo.id == 4).one()
        self.assertEqual(team_info.url, parent_url + '/' + team_info.url_part)