def test_get_latest_activities_returns_activities_sorted(self): hostname = Site.objects.get(is_default_site=True).hostname page1 = BlogPage(title='oldest page', date_published=datetime.date(2015, 9, 3)) # Give it a newsroom subcategory page1.categories.add(CFGOVPageCategory(name='press-release')) publish_page(page1) page2 = BlogPage(title='second page', date_published=datetime.date(2016, 5, 3)) # Give it a newsroom subcategory page2.categories.add(CFGOVPageCategory(name='speech')) publish_page(page2) page3 = BlogPage(title='most recent page') # Give it a newsroom subcategory page3.categories.add(CFGOVPageCategory(name='testimony')) publish_page(page3) activities = activity_feed.get_latest_activities( activity_type='newsroom', hostname=hostname) self.assertEquals(len(activities), 3) self.assertEquals(activities[0].specific, page3) self.assertEquals(activities[1].specific, page2) self.assertEquals(activities[2].specific, page1)
def test_filter_by_archived(self): page1 = BlogPage(title='test page', is_archived='yes') page2 = BlogPage(title='another test page') page3 = BlogPage(title='never-archived page', is_archived='never') publish_page(page1) publish_page(page2) publish_page(page3) form = self.setUpFilterableForm() form.data = {} form.full_clean() page_set = form.get_page_set() self.assertEqual(len(page_set), 3) form.data = {'archived': 'include'} form.full_clean() page_set = form.get_page_set() self.assertEqual(len(page_set), 3) form.data = {'archived': 'exclude'} form.full_clean() page_set = form.get_page_set() self.assertEqual(len(page_set), 2) self.assertEqual(page_set[0].specific, page2) form.data = {'archived': 'only'} form.full_clean() page_set = form.get_page_set() self.assertEqual(len(page_set), 1) self.assertEqual(page_set[0].specific, page1)
def setUpTestData(cls): blog1 = BlogPage(title='test page') blog1.categories.add(CFGOVPageCategory(name='foo')) blog1.categories.add(CFGOVPageCategory(name='bar')) blog1.tags.add('foo') blog1.authors.add('richa-agarwal') blog1.authors.add('sarah-simpson') blog2 = BlogPage(title='another test page') blog2.categories.add(CFGOVPageCategory(name='bar')) blog2.tags.add('blah') blog2.authors.add('richard-cordray') event1 = EventPage(title='test page 2', start_dt=datetime.now(timezone('UTC'))) event1.tags.add('bar') cool_event = EventPage(title='Cool Event', start_dt=datetime.now(timezone('UTC'))) awesome_event = EventPage(title='Awesome Event', start_dt=datetime.now(timezone('UTC'))) publish_page(blog1) publish_page(blog2) publish_page(event1) publish_page(cool_event) publish_page(awesome_event) cls.blog1 = blog1 cls.blog2 = blog2 cls.event1 = event1 cls.cool_event = cool_event cls.awesome_event = awesome_event
def setUpTestData(cls): blog1 = BlogPage(title='test page') blog1.categories.add(CFGOVPageCategory(name='foo')) blog1.categories.add(CFGOVPageCategory(name='bar')) blog1.tags.add('foo') blog1.authors.add('richa-agarwal') blog1.authors.add('sarah-simpson') blog2 = BlogPage(title='another test page') blog2.categories.add(CFGOVPageCategory(name='bar')) blog2.tags.add('blah') blog2.authors.add('richard-cordray') category_blog = BlogPage(title='Category Test') category_blog.categories.add( CFGOVPageCategory(name='info-for-consumers')) event1 = EventPage(title='test page 2', start_dt=datetime.now(timezone('UTC'))) event1.tags.add('bar') cool_event = EventPage(title='Cool Event', start_dt=datetime.now(timezone('UTC'))) awesome_event = EventPage(title='Awesome Event', start_dt=datetime.now(timezone('UTC'))) publish_page(blog1) publish_page(blog2) publish_page(event1) publish_page(cool_event) publish_page(awesome_event) publish_page(category_blog) cls.blog1 = blog1 cls.blog2 = blog2 cls.event1 = event1 cls.cool_event = cool_event cls.awesome_event = awesome_event cls.category_blog = category_blog cls.rebuild_elasticsearch_index('v1', stdout=StringIO())
def setUpTestData(cls): cls.page1 = BlogPage(title='test page', is_archived='yes') cls.page2 = BlogPage(title='another test page') cls.page3 = BlogPage(title='never-archived page', is_archived='never') publish_page(cls.page1) publish_page(cls.page2) publish_page(cls.page3) cls.rebuild_elasticsearch_index('v1', stdout=StringIO())
def test_filter_doesnt_return_drafts(self): page1 = BlogPage(title='test page 1') page1.tags.add('foo') page2 = BlogPage(title='test page 2') page2.tags.add('foo') publish_page(page1) # Only publish one of the pages form = self.setUpFilterableForm(data={'topics': ['foo']}) page_set = form.get_page_set() self.assertEquals(len(page_set), 1) self.assertEquals(page_set[0].specific, page1)
def setUp(self): self.factory = RequestFactory() self.filterable_page = BrowseFilterablePage(title="Blog", slug="test") self.root = Site.objects.get(is_default_site=True).root_page self.root.add_child(instance=self.filterable_page) self.page = BlogPage(title="Child test page", live=True) self.archived_page = BlogPage(title="Archive test page", live=True, is_archived='yes') self.filterable_page.add_child(instance=self.page) self.filterable_page.add_child(instance=self.archived_page)
def test_filter_by_category(self): page1 = BlogPage(title='test page') page1.categories.add(CFGOVPageCategory(name='foo')) page1.categories.add(CFGOVPageCategory(name='bar')) page2 = BlogPage(title='another test page') page2.categories.add(CFGOVPageCategory(name='bar')) publish_page(page1) publish_page(page2) form = self.setUpFilterableForm(data={'categories': ['foo']}) page_set = form.get_page_set() self.assertEquals(len(page_set), 1) self.assertEquals(page_set[0].specific, page1)
def test_filter_by_author_names(self): page1 = BlogPage(title='test page 1') page1.authors.add('richa-agarwal') page1.authors.add('sarah-simpson') page2 = BlogPage(title='test page 2') page2.authors.add('richard-cordray') publish_page(page1) publish_page(page2) form = self.setUpFilterableForm(data={'authors': ['sarah-simpson']}) page_set = form.get_page_set() self.assertEquals(len(page_set), 1) self.assertEquals(page_set[0].specific, page1)
def test_get_latest_activities_returns_relevant_activities(self): page1 = BlogPage(title='test page') # Give it a blog subcategory page1.categories.add(CFGOVPageCategory(name='at-the-cfpb')) publish_page(page1) page2 = BlogPage(title='another test page') # Don't give it a blog subcategory publish_page(page2) activities = activity_feed.get_latest_activities(activity_type='blog') self.assertEquals(len(activities), 1) self.assertEquals(activities[0].specific, page1)
def test_filter_by_tags(self): page1 = BlogPage(title='test page 1') page1.tags.add('foo') page2 = EventPage(title='test page 2') page2.tags.add('bar') page3 = BlogPage(title='test page 3') page3.tags.add('blah') publish_page(page1) publish_page(page2) publish_page(page3) form = self.setUpFilterableForm(data={'topics': ['foo', 'bar']}) page_set_pks = form.get_page_set().values_list('pk', flat=True) self.assertEquals(len(page_set_pks), 2) self.assertIn(page1.pk, page_set_pks) self.assertIn(page2.pk, page_set_pks)
def test_filter_by_tags(self): page1 = BlogPage(title='test page 1') page1.tags.add('foo') page2 = EventPage(title='test page 2') page2.tags.add('bar') page3 = BlogPage(title='test page 3') page3.tags.add('blah') publish_page(page1) publish_page(page2) publish_page(page3) form = self.setUpFilterableForm(data={'topics': ['foo', 'bar']}) page_set = form.get_page_set() self.assertEquals(len(page_set), 2) self.assertEquals(page_set[1].specific, page1) self.assertEquals(page_set[0].specific, page2)
def test_unpublished_page_doesnt_include_rss_feed(self): page = BlogPage(title='test', slug='test') request = RequestFactory().get('/') response = page.serve(request) self.assertNotContains(response, 'RSS feed')
def add_children(parent, num, slug): for i in range(num): child = parent.add_child( instance=BlogPage(title="{} child {}".format(slug, i), slug="{}-child-{}".format(slug, i))) child.tags.add(u'tag{}'.format(i)) child.tags.add(u'shared-tag') publish_changes(child)
def setUp(self): self.filterable_page = BrowseFilterablePage( title="Blog", slug="test", live=True ) self.url_path = self.filterable_page.url self.root = Site.objects.get(is_default_site=True).root_page self.root.add_child(instance=self.filterable_page) self.page1 = BlogPage( title="Page archived in 2018", live=True, is_archived="yes", first_published_at=datetime.datetime(2018, 1, 1, tzinfo=pytz.UTC), last_published_at=datetime.datetime(2021, 1, 1, tzinfo=pytz.UTC) ) self.page2 = BlogPage( title="Page archived in 2019", live=True, is_archived="yes", first_published_at=datetime.datetime(2019, 1, 1, tzinfo=pytz.UTC), last_published_at=datetime.datetime(2019, 1, 1, tzinfo=pytz.UTC) ) self.page3 = BlogPage( title="Page archived in 2020", live=True, is_archived="yes", first_published_at=datetime.datetime(2020, 1, 1, tzinfo=pytz.UTC), last_published_at=datetime.datetime(2020, 1, 1, tzinfo=pytz.UTC) ) self.page4 = BlogPage( title="Page published in 2021", live=True, is_archived="no", first_published_at=datetime.datetime(2021, 1, 1, tzinfo=pytz.UTC), last_published_at=datetime.datetime(2021, 1, 1, tzinfo=pytz.UTC) ) self.filterable_page.add_child(instance=self.page1) self.filterable_page.add_child(instance=self.page2) self.filterable_page.add_child(instance=self.page3) self.filterable_page.add_child(instance=self.page4) self.stdout = StringIO()
def test_filter_doesnt_return_drafts(self): page2 = BlogPage(title='test page 2') page2.tags.add('foo') # Don't publish new page form = self.setUpFilterableForm(data={'topics': ['foo']}) page_set = form.get_page_set() self.assertEqual(len(page_set), 1) self.assertEqual(page_set[0].specific, self.blog1)
def test_page_includes_rss_feed_of_parent(self): parent_page = SublandingFilterablePage(title='test', slug='test') save_new_page(parent_page) child_page = BlogPage(title='test', slug='test') save_new_page(child_page, root=parent_page) response = self.client.get('/test/test/') self.assertContains(response, 'href="/test/feed/')
def setUp(self): self.filter_controls = filter_controls self.filterable_page = BrowseFilterablePage(title="Blog", slug="test") self.root = Site.objects.get(is_default_site=True).root_page self.root.add_child(instance=self.filterable_page) self.set_filterable_controls(filter_controls) self.child_page = BlogPage(title="Child test page", live=True) self.sibling_page = BlogPage(title="Sibling test page", live=True) self.archived_sibling_page = BlogPage(title="Archive test page", live=True, is_archived='yes') self.filterable_page.add_child(instance=self.child_page) self.filterable_page.get_parent().add_child(instance=self.sibling_page) self.filterable_page.get_parent().add_child( instance=self.archived_sibling_page)
def setUp(self): self.filterable_page = BrowseFilterablePage(title="Blog", slug="test") self.root = Site.objects.get(is_default_site=True).root_page self.root.add_child(instance=self.filterable_page) self.page = BlogPage( title="Test", slug="one", live=True, ) self.filterable_page.add_child(instance=self.page)
def set_up_published_pages(self): page1 = BlogPage(title='test page 1') page1.tags.add(u'C-tag-3-instances') page2 = EventPage(title='test page 2', start_dt=datetime.now(timezone('UTC'))) page2.tags.add(u'B-tag-2-instances') page2.tags.add(u'C-tag-3-instances') page3 = BlogPage(title='test page 3') page3.tags.add(u'A-tag-1-instance') page3.tags.add(u'B-tag-2-instances') page3.tags.add(u'C-tag-3-instances') helpers.publish_page(page1) helpers.publish_page(page2) helpers.publish_page(page3) filterable_pages = AbstractFilterPage.objects.live() self.page_ids = filterable_pages.values_list('id', flat=True)
def setUp(self): self.view = PageMetadataReportView() self.tag1 = baker.make(Tag, name="tag1") self.tag2 = baker.make(Tag, name="tag2") self.site = Site.objects.get(is_default_site=True) self.root_page = self.site.root_page self.blog_page = BlogPage(title='Blogojevich', live=True) self.root_page.add_child(instance=self.blog_page) self.category_tuple = categories[0][1][0] self.category = CFGOVPageCategory(name=self.category_tuple[1]) self.blog_page.categories.add(self.category) self.blog_page.tags.add(self.tag1, self.tag2)
def setUp(self): self.filterable_page = BrowseFilterablePage(title="Blog", slug="test") self.root = Site.objects.get(is_default_site=True).root_page self.root.add_child(instance=self.filterable_page) self.page = BlogPage( title="Test", slug="one", live=True, ) self.filterable_page.add_child(instance=self.page) self.rebuild_elasticsearch_index('v1', stdout=StringIO())
def setUp(self): now = datetime.now(pytz.UTC) self.home_page = HomePage.objects.get(slug='cfgov') # Set up a root for updates self.updates_page = SublandingFilterablePage( title='Updates', slug='updates', live=True ) self.home_page.add_child(instance=self.updates_page) self.updates_page.save_revision().publish() # Set up blogs self.blog_1 = BlogPage( title='Blog 1', slug='blog1', live=True ) self.updates_page.add_child(instance=self.blog_1) self.blog_2 = BlogPage( title='Blog 2', slug='blog2', live=True ) self.updates_page.add_child(instance=self.blog_2) self.blog_3 = BlogPage( title='Blog 3', slug='blog3', live=True ) self.updates_page.add_child(instance=self.blog_3) # Set up some events self.event_1 = EventPage( title='Event 1', slug='event1', live=True, start_dt=now ) self.updates_page.add_child(instance=self.event_1) self.event_2 = EventPage( title='Event 2', slug='event2', live=True, start_dt=now ) self.updates_page.add_child(instance=self.event_2) self.event_3 = EventPage( title='Event 3', slug='event3', live=True, start_dt=now ) self.updates_page.add_child(instance=self.event_3) # Set up some Newsroom posts self.news_1 = NewsroomPage( title='Newsroom 1', slug='news1', live=True ) self.updates_page.add_child(instance=self.news_1) self.news_2 = NewsroomPage( title='Newsroom 2', slug='news2', live=True ) self.updates_page.add_child(instance=self.news_2) self.news_3 = NewsroomPage( title='Newsroom 3', slug='news3', live=True ) self.updates_page.add_child(instance=self.news_3) # Publish things in an order self.news_3.save_revision().publish() self.blog_2.save_revision().publish() self.event_2.save_revision().publish() self.blog_1.save_revision().publish() self.news_1.save_revision().publish() self.event_3.save_revision().publish() self.blog_3.save_revision().publish() self.event_1.save_revision().publish() self.news_2.save_revision().publish() # Set up some unpublished types self.unpublished_blog_1 = BlogPage( title='Unpublished blog 1', slug='unpublished_blog1', live=False ) self.updates_page.add_child(instance=self.unpublished_blog_1) # Set up some events self.unpublished_event_1 = EventPage( title='Unpublished event 1', slug='unpublished_event1', live=False, start_dt=now ) self.updates_page.add_child(instance=self.unpublished_event_1) # Set up some Newsroom posts self.unpublished_news_1 = NewsroomPage( title='Unpublished news 1', slug='unpublished_news1', live=False ) self.updates_page.add_child(instance=self.unpublished_news_1) # Add an excluded update to exclude event_1 self.home_page.excluded_updates.create( page=self.home_page, excluded_page=self.event_1 ) self.home_page.save_revision().publish()