Beispiel #1
0
    def test_overlap(self):
        kwargs = {
            'count': 100,
            'offset': 50,
            'buf_size': 10,
            'object_list': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
            'per_page': 2
        }

        bp = BufferedPaginator(**kwargs)

        # use paginator's buf_size
        self.assertEqual(bp.get_overlap(45), (True, (45, 5), (None, None)))
        self.assertEqual(bp.get_overlap(47), (True, (47, 3), (None, None)))
        self.assertEqual(bp.get_overlap(55), (True, (None, None), (61, 5)))
        self.assertEqual(bp.get_overlap(52), (True, (None, None), (61, 2)))
        self.assertEqual(bp.get_overlap(20), (False, (20, 10), (None, None)))
        self.assertEqual(bp.get_overlap(70), (False, (70, 10), (None, None)))

        # explicit buf_size
        self.assertEqual(bp.get_overlap(47, 14), (True, (47, 3), (61, 1)))
        self.assertEqual(bp.get_overlap(20, 100), (True, (20, 30), (61, 60)))
        self.assertEqual(bp.get_overlap(55, 12), (True, (None, None), (61, 7)))
        self.assertEqual(bp.get_overlap(20, 8), (False, (20, 8), (None, None)))
        self.assertEqual(bp.get_overlap(70, 3), (False, (70, 3), (None, None)))