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 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_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 setUpTestData(cls): cls.site = Site.objects.get(is_default_site=True) event = EventPage(title='Event Test', start_dt=datetime(2021, 2, 16, tzinfo=timezone('UTC')), end_dt=datetime(2021, 2, 16, tzinfo=timezone('UTC'))) event.tags.add('test-topic') event.categories.add(CFGOVPageCategory(name='test-category')) event.authors.add('test-author') publish_page(event) enforcement = EnforcementActionPage( title="Great Test Page", preview_description='This is a great test page.', initial_filing_date=datetime.now(timezone('UTC'))) status = EnforcementActionStatus(status='expired-terminated-dismissed') enforcement.statuses.add(status) product = EnforcementActionProduct(product='Debt Collection') enforcement.products.add(product) publish_page(enforcement) blog = BlogPage(title="Blog Page") publish_page(blog) cls.event = event cls.enforcement = enforcement cls.blog = blog cls.rebuild_elasticsearch_index('v1', stdout=StringIO())
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 setUp(self): self.hostname = 'localhost' # add some authors to a CFGOV page and give it some tags self.author1 = 'Some Author' self.author2 = 'Another Person' self.author3 = 'A Third Author' self.page_with_authors = CFGOVPage(title='a cfgov page with authors') helpers.save_new_page(self.page_with_authors) self.page_with_authors.authors.add(self.author1) self.page_with_authors.authors.add(self.author2) self.page_with_authors.authors.add(self.author3) self.page_with_authors.tags.add('tag 1') self.page_with_authors.tags.add('tag 2') # set up parent pages for the different types of related # posts we can have self.blog_parent = CFGOVPage(slug='blog', title='blog parent') self.newsroom_parent = CFGOVPage(slug='newsroom', title='newsroom parent') self.events_parent = CFGOVPage(slug='events', title='events parent') self.archive_events_parent = CFGOVPage(slug='archive-past-events', title='archive past events parent') helpers.save_new_page(self.blog_parent) helpers.save_new_page(self.newsroom_parent) helpers.save_new_page(self.events_parent) helpers.save_new_page(self.archive_events_parent) # set up children of the parent pages and give them some tags # and some categories self.blog_child1 = AbstractFilterPage(title='blog child 1', date_published=dt.date(2016, 9, 1)) self.blog_child1.tags.add('tag 1') self.blog_child1.categories.add(CFGOVPageCategory(name='info-for-consumers')) self.blog_child2 = AbstractFilterPage(title='blog child 2', date_published=dt.date(2016, 9, 2)) self.blog_child2.tags.add('tag 2') self.blog_child2.categories.add(CFGOVPageCategory(name='policy_compliance')) self.newsroom_child1 = AbstractFilterPage(title='newsroom child 1', date_published=dt.date(2016, 9, 2)) self.newsroom_child1.tags.add('tag 1') self.newsroom_child1.tags.add('tag 2') self.newsroom_child1.categories.add(CFGOVPageCategory(name='op-ed')) self.newsroom_child2 = AbstractFilterPage(title='newsroom child 2', date_published=dt.date(2016, 9, 3)) self.newsroom_child2.tags.add('tag 2') self.newsroom_child2.categories.add(CFGOVPageCategory(name='some-other-category')) self.events_child1 = AbstractFilterPage(title='events child 1', date_published=dt.date(2016, 9, 7)) self.events_child1.tags.add('tag 1') self.events_child2 = AbstractFilterPage(title='events child 2', date_published=dt.date(2016, 9, 5)) self.events_child2.tags.add('tag 2') helpers.save_new_page(self.blog_child1, self.blog_parent) helpers.save_new_page(self.blog_child2, self.blog_parent) helpers.save_new_page(self.newsroom_child1, self.newsroom_parent) helpers.save_new_page(self.newsroom_child2, self.newsroom_parent) helpers.save_new_page(self.events_child1, self.events_parent) # mock a stream block that dictates how to retrieve the related posts # note that because of the way that the related_posts_category_lookup function # works i.e. by consulting a hard-coded object, the specific_categories # slot of the dict has to be something that it can actually find. self.block = mock.MagicMock() self.block.block_type = 'related_posts' self.block.value = dict({ 'limit': 3, 'show_heading': True, 'header_title': 'Further reading', 'relate_posts': False, 'relate_newsroom': False, 'relate_events': False, 'specific_categories': [] })