예제 #1
0
    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])
예제 #2
0
    def test_render(self):

        assgmnt1 = latest_sectionable_nitf.Assignment()

        r1 = self.renderer(context=self.portal, assignment=assgmnt1)

        r1 = r1.__of__(self.portal)
        r1.update()
예제 #3
0
    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))
예제 #4
0
    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))
예제 #5
0
    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])
예제 #6
0
 def test_interfaces(self):
     last_sectionable = latest_sectionable_nitf.Assignment()
     self.assertTrue(IPortletAssignment.providedBy(last_sectionable))
     self.assertTrue(IPortletDataProvider.providedBy(last_sectionable.data))
예제 #7
0
    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])