예제 #1
0
    def test_find_pagination_sort(self):
        """
        Tests pagination and sorting of find results.
        """
        sorter = Sorter([
            SortParam(field_name='user.age',
                      field_type='IntegerField',
                      order='DESC'),
            SortParam(field_name='user.screen_name',
                      field_type='CharField',
                      order='ASC')
        ])
        field_query = EngineQuery(self.fieldsets, 'OR')
        results = self.engine.find(query=field_query,
                                   sorter=sorter,
                                   page=1,
                                   page_size=2)
        docs = results['results']
        count = results['count']
        self.assertEqual(count, 3)
        self.assertEqual(len(docs), 2)
        self.assertEqual(docs[0]['user']['screen_name'], 'jack')

        results = self.engine.find(query=field_query,
                                   sorter=sorter,
                                   page=2,
                                   page_size=2)
        docs = results['results']
        count = results['count']
        self.assertEqual(count, 3)
        self.assertEqual(len(docs), 1)
        self.assertEqual(docs[0]['user']['screen_name'], 'john')
예제 #2
0
    def _get_sorter(self):
        """

        """
        sort = SortParam(
            field_name=self._related_date_field,
            field_type='DateTimeField',
            order='DESC',
        )
        return Sorter(sort_list=[sort])
예제 #3
0
 def _get_sorter(date_field):
     """
     Takes the name of a date field and returns a |Sorter| for
     sorting results in descending order of date.
     """
     sort = SortParam(
         field_name=date_field,
         field_type='DateTimeField',
         order='DESC',
     )
     return Sorter(sort_list=[sort])