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')
def _get_sorter(self): """ """ sort = SortParam( field_name=self._related_date_field, field_type='DateTimeField', order='DESC', ) return Sorter(sort_list=[sort])
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])