Example #1
0
    def test_content_links_parsing(self):
        self.populate(self.session)
        en = self.session.query(Language).filter(Language.lang == 'en').one()
        menu = self.session.query(Menu).first()
        home_info = self.session.query(PageInfo).filter(PageInfo.id == 2).one()
        home = home_info.node
        contact_info = self.session.query(PageInfo).filter(PageInfo.id == 4).one()
        contact = contact_info.node
        team = Page(home=True, parent=menu, weight=300)
        content = '<h2>'
        content += '<a href="{obj.url}">{obj.label}</a>'.format(obj=home_info)
        content += '</h2>'
        team_info = PageInfo(label="Team", title="The Team",
                             url_part="team",
                             content=content,
                             lang=en, node=team)
        self.session.flush()
        self.assertIn(home_info, team_info.links)
        self.assertNotIn(contact_info, team_info.links)

        content = '<a href="{obj.url}">{obj.label}</a>'.format(obj=contact_info)
        team_info.content = team_info.content + content
        self.session.flush()
        self.assertIn(home_info, team_info.links)
        self.assertIn(contact_info, team_info.links)
        self.assertIn(home_info.url, team_info.content)
        self.assertIn(contact_info.url, team_info.content)

        home.weight = 3000
        home.parent = self.session.query(Section).filter(Section.id == 4).one()
        log.debug('Flushing...')
        self.session.flush()
        self.assertIn(home_info.url, team_info.content)
        self.assertIn(contact_info.url, team_info.content)
        self.assertIn(home_info, team_info.links)
        self.assertIn(contact_info, team_info.links)