class TestCFGOVPageBreadcrumbs(TestCase): def setUp(self): self.factory = RequestFactory() self.site = Site.objects.first() self.root_page = self.site.root_page self.top_level_page = CFGOVPage(title='top', slug='top', live=True) save_new_page(self.top_level_page, root=self.root_page) self.second_level_page = CFGOVPage(title='second', slug='second', live=True) save_new_page(self.second_level_page, root=self.top_level_page) self.third_level_page = CFGOVPage(title='third', slug='third', live=True) save_new_page(self.third_level_page, root=self.second_level_page) def test_get_breadcrumbs_forced_homepage_descendant(self): request = self.factory.get('/top/second') request.site = self.site self.top_level_page.force_breadcrumbs = True self.top_level_page.save() self.assertIn( 'top', [p.slug for p in self.second_level_page.get_breadcrumbs(request)]) def test_get_breadcrumbs_no_homepage_descendant(self): request = self.factory.get('/top/second') request.site = self.site self.assertNotIn( 'top', [p.slug for p in self.second_level_page.get_breadcrumbs(request)]) def test_get_breadcrumbs_two_levels_deep(self): request = self.factory.get('/top/second/third') request.site = self.site self.assertNotIn( 'top', [p.slug for p in self.third_level_page.get_breadcrumbs(request)]) self.assertIn( 'second', [p.slug for p in self.third_level_page.get_breadcrumbs(request)])
class TestCFGOVPageCopy(TestCase): def setUp(self): self.site = Site.objects.first() self.root_page = self.site.root_page self.page_with_tags = CFGOVPage(title='Tagged', slug='tagged', live=True) save_new_page(self.page_with_tags, root=self.root_page) self.page_with_tags.tags.add('tag1') self.page_with_tags.authors.add('author1') self.page_with_tags.save() def check_tagged_page_copies_without_error(self): test_page = self.page_with_tags new_page = test_page.copy(update_attrs={ "slug": f"{test_page.slug}-copy", "title": f"{test_page.title} COPY" }) self.assertEqual(new_page.title, "Tagged COPY")