def test_default_search_for_nitf(self): assgmnt1 = latest_sectionable_nitf.Assignment() r1 = self.renderer(context=self.portal, assignment=assgmnt1) r1 = r1.__of__(self.portal) view = api.content.get_view(u'nitf-filter-list', r1, self.request) results = view.getResults() self.assertEqual(len(results), 10) query = self.default_query catalog_results = self.catalog(**query)[:10] self.assertEqual([i.id for i in results], [i.id for i in catalog_results]) results = view.getResults(limit=45) self.assertEqual(len(results), 45) query = self.default_query query['sort_limit'] = 45 catalog_results = self.catalog(**query)[:45] self.assertEqual([i.id for i in results], [i.id for i in catalog_results])
def test_render(self): assgmnt1 = latest_sectionable_nitf.Assignment() r1 = self.renderer(context=self.portal, assignment=assgmnt1) r1 = r1.__of__(self.portal) r1.update()
def test_invoke_edit_view(self): mapping = PortletAssignmentMapping() request = self.request mapping['latest_nitf'] = latest_sectionable_nitf.Assignment() editview = getMultiAdapter((mapping['latest_nitf'], request), name='edit') self.assertTrue(isinstance(editview, latest_sectionable_nitf.EditForm))
def test_obtain_renderer(self): context = self.portal request = self.request view = context.restrictedTraverse('@@plone') manager = getUtility(IPortletManager, name='plone.rightcolumn', context=self.portal) assgmnt1 = latest_sectionable_nitf.Assignment() renderer1 = getMultiAdapter( (context, request, view, manager, assgmnt1), IPortletRenderer) self.assertTrue(isinstance(renderer1, latest_sectionable_nitf.Renderer))
def test_filter_sections(self): assgmnt1 = latest_sectionable_nitf.Assignment() r1 = self.renderer(context=self.portal, assignment=assgmnt1) r1 = r1.__of__(self.portal) view = api.content.get_view(u'nitf-filter-list', r1, self.request) for section in [('section 1', 'Section 1'), ('section 2', 'Section 2'), ('section 3', 'Section 3')]: results = view.getResults(section=section[0], limit=45) self.assertEqual(len(results), 15) query = self.default_query query['sort_limit'] = 45 query['section'] = section[1] catalog_results = self.catalog(**query)[:45] self.assertEqual([i.id for i in results], [i.id for i in catalog_results])
def test_interfaces(self): last_sectionable = latest_sectionable_nitf.Assignment() self.assertTrue(IPortletAssignment.providedBy(last_sectionable)) self.assertTrue(IPortletDataProvider.providedBy(last_sectionable.data))
def test_modifying_query_through_collection(self): assgmnt1 = latest_sectionable_nitf.Assignment() r1 = self.renderer(context=self.portal, assignment=assgmnt1) r1 = r1.__of__(self.portal) view = api.content.get_view(u'nitf-filter-list', r1, self.request) self.folder.invokeFactory('Topic', id='collection') topic = self.folder['collection'] uid = topic.UID() # Choose a different type to show. This key should be ignored type_crit = topic.addCriterion('Type', 'ATPortalTypeCriterion') type_crit.setValue('Document') topic.reindexObject() results = view.getResults(limit=45, uid=uid) self.assertEqual(len(results), 45) query = self.default_query query['sort_limit'] = 45 catalog_results = self.catalog(**query)[:45] self.assertEqual([i.id for i in results], [i.id for i in catalog_results]) # Now, let's add a section, it should also be ignored section_crit = topic.addCriterion('section', 'ATSimpleStringCriterion') section_crit.setValue('Section 1') topic.reindexObject() results = view.getResults(limit=45, uid=uid) self.assertEqual(len(results), 45) query = self.default_query catalog_results = self.catalog(**query)[:45] self.assertEqual([i.id for i in results], [i.id for i in catalog_results]) # Now, let's just filter published content, we only get 9 results state_crit = topic.addCriterion('review_state', 'ATSimpleStringCriterion') state_crit.setValue('published') topic.reindexObject() results = view.getResults(limit=45, uid=uid) self.assertEqual(len(results), 9) query = self.default_query query['review_state'] = 'published' catalog_results = self.catalog(**query)[:45] self.assertEqual([i.id for i in results], [i.id for i in catalog_results]) # Now, let's sort results by section and in reverse topic.addCriterion('section', 'ATSortCriterion') topic.setSortCriterion('section', True) topic.reindexObject() results = view.getResults(limit=45, uid=uid) self.assertEqual(len(results), 9) query = self.default_query query['sort_on'] = 'section' catalog_results = self.catalog(**query)[:45] self.assertEqual([i.id for i in results], [i.id for i in catalog_results]) # Let's now sort it by section but not in reverse topic.setSortCriterion('section', False) topic.reindexObject() results = view.getResults(limit=45, uid=uid) self.assertEqual(len(results), 9) query = self.default_query del query['sort_order'] catalog_results = self.catalog(**query)[:45] self.assertEqual([i.id for i in results], [i.id for i in catalog_results]) # Finally, let's just get results filtered for a particular section results = view.getResults(section='section 1', limit=45, uid=uid) self.assertEqual(len(results), 3) query = self.default_query query['section'] = 'Section 1' catalog_results = self.catalog(**query)[:45] self.assertEqual([i.id for i in results], [i.id for i in catalog_results])