def test_bad_offset(self): msgt('offset beyond # of hits, should revert to page 1') kwargs = dict(num_pager_buttons=5) p = DisplayPager(num_hits=70, items_per_page=10, result_start_offset=71, **kwargs) msg(p.get_page_menu_with_chosen()) self.assertEqual(p.page_count, 7) self.assertEqual(p.current_page, 1) self.assertEqual(p.get_page_menu_with_chosen(), ['<em>1</em>', 2, 3, 4, 5])
def test_four_buttons(self): msgt('test_four_buttons') kwargs = dict(num_pager_buttons=4) p = DisplayPager(num_hits=12, items_per_page=3, result_start_offset=5, **kwargs) msg(p.get_page_menu_with_chosen()) self.assertEqual(p.page_count, 4) self.assertEqual(p.current_page, 2) self.assertEqual(p.get_page_menu_with_chosen(), [1, '<em>2</em>', 3, 4])
def test_two_pages(self): msgt('test_two_pages') kwargs = dict(num_pager_buttons=5) p = DisplayPager(num_hits=12, items_per_page=10, result_start_offset=0, **kwargs) msg(p.get_page_menu_with_chosen()) self.assertEqual(p.page_count, 2) self.assertEqual(p.current_page, 1) self.assertEqual(p.get_page_menu_with_chosen(), ['<em>1</em>', 2])
def test_zero_pages(self): msgt('test_page2') kwargs = dict(num_pager_buttons=5) p = DisplayPager(num_hits=1, items_per_page=10, result_start_offset=0, **kwargs) msg(p.get_page_menu_with_chosen()) self.assertEqual(p.page_count, 0) self.assertEqual(p.current_page, 0) self.assertEqual(p.get_page_menu_with_chosen(), None)
def test_page2(self): msgt('test_page2') kwargs = dict(num_pager_buttons=5) p = DisplayPager(num_hits=116, items_per_page=10, result_start_offset=12, **kwargs) msg(p.get_page_menu_with_chosen()) self.assertEqual(p.page_count, 12) self.assertEqual(p.current_page, 2) self.assertEqual(p.get_page_menu_with_chosen(), [1, '<em>2</em>', 3, 4, 5])
def test_left_fillin(self): msgt('test_left_fillin') kwargs = dict(num_pager_buttons=5) p = DisplayPager(num_hits=126, items_per_page=5, result_start_offset=125, **kwargs) msg(p.get_page_menu_with_chosen()) self.assertEqual(p.page_count, 26) self.assertEqual(p.current_page, 26) self.assertEqual(p.get_page_menu_with_chosen(), [22, 23, 24, 25, '<em>26</em>'])
def test_calculation_for_current_page(self): """ Tests that 1 + 1 always equals 2. """ msgt('Test calculation for current page ') p = DisplayPager(num_hits=26, items_per_page=5, result_start_offset=21) #p.show() msg('should be 6 pages') self.assertEqual(p.page_count, 6) msg('current page should be 5') self.assertEqual(p.current_page, 5) p = DisplayPager(num_hits=0, items_per_page=5, result_start_offset=0) #p.show() msg('should be 0 pages') self.assertEqual(p.page_count, 0) msg('current page should be 0') self.assertEqual(p.current_page, 0)
def __init__(self, results, num_display_rows, result_start_offset=0): if type(results) is not PySolrResults: raise TypeError('Expected pysolr.Results object. Received: [%s]' % type(results)) #print (results.docs) # already set self.result_start_offset = result_start_offset self.num_display_rows = num_display_rows # items to calculate from the results self.num_results = 0 self.docs = [] self.hit_count = results.hits self.highlights_dict = {} # { entityid: {} } self.facet_groups = {} # { name : FacetGroup } # process the results self.process_results(results) # prepare the pager self.display_pager = DisplayPager(self.hit_count, self.num_display_rows, result_start_offset)