Esempio n. 1
0
    def test_pagination_build_query_string(self):
        # Test the following cases confirm expected string is returned
        # A) all defaults - expect next and prev page numbers only
        # B) non-default sort - expect page numbers with sort
        # C) non-default num - expect page numbers with num
        # D) non-default sort and num - expect page numbers with num and sort
        # E) no page_obj - expect None
        # Run where prev_page = 2 & next_page = 4

        default_num = '10'
        default_sort = '-id'

        decision_list = DecisionList()
        decision_list.default_num_items = default_num

        # Set up a dummy page object
        class DummyPageObject:
            def __init__(self, **kwargs):
                self.__dict__.update(kwargs)
        page_obj = DummyPageObject(previous_page_number=lambda: 2, next_page_number=lambda: 4)

        test_cases = [{'name': 'Test A', 'page_obj': page_obj, 'context': {'num': default_num, 'sort': default_sort}, 'expectedprev': '?page=2', 'expectednext': '?page=4'},
                      {'name': 'Test B', 'page_obj': page_obj, 'context': {'num': default_num, 'sort': 'excerpt'}, 'expectedprev': '?sort=excerpt&page=2', 'expectednext': '?sort=excerpt&page=4'},
                      {'name': 'Test C', 'page_obj': page_obj, 'context': {'num': '25', 'sort': default_sort}, 'expectedprev': '?num=25&page=2', 'expectednext': '?num=25&page=4'},
                      {'name': 'Test D', 'page_obj': page_obj, 'context': {'num': '25', 'sort': 'excerpt'}, 'expectedprev': '?sort=excerpt&num=25&page=2', 'expectednext': '?sort=excerpt&num=25&page=4'},
                      {'name': 'Test E', 'page_obj': None, 'context': {'num': '25', 'sort': 'feedback'}, 'expectedprev': None, 'expectednext': None}]

        for test_case in test_cases:
            context = test_case['context']
            context['page_obj'] = test_case['page_obj']
            returned_prev_string = decision_list.build_prev_query_string(context)
            returned_next_string = decision_list.build_next_query_string(context)
            self.assertEquals(returned_prev_string, test_case['expectedprev'], 'Did not get expected previous query')
            self.assertEquals(returned_next_string, test_case['expectednext'], 'Did not get expected next query')
Esempio n. 2
0
    def test_pagination_build_query_string(self):
        # Test the following cases confirm expected string is returned
        # A) all defaults - expect next and prev page numbers only
        # B) non-default sort - expect page numbers with sort
        # C) non-default num - expect page numbers with num
        # D) non-default sort and num - expect page numbers with num and sort
        # E) no page_obj - expect None
        # Run where prev_page = 2 & next_page = 4

        default_num = '10'
        default_sort = '-id'

        decision_list = DecisionList()
        decision_list.default_num_items = default_num

        # Set up a dummy page object
        class DummyPageObject:
            def __init__(self, **kwargs):
                self.__dict__.update(kwargs)

        page_obj = DummyPageObject(previous_page_number=lambda: 2,
                                   next_page_number=lambda: 4)

        test_cases = [{
            'name': 'Test A',
            'page_obj': page_obj,
            'context': {
                'num': default_num,
                'sort': default_sort
            },
            'expectedprev': '?page=2',
            'expectednext': '?page=4'
        }, {
            'name': 'Test B',
            'page_obj': page_obj,
            'context': {
                'num': default_num,
                'sort': 'excerpt'
            },
            'expectedprev': '?sort=excerpt&page=2',
            'expectednext': '?sort=excerpt&page=4'
        }, {
            'name': 'Test C',
            'page_obj': page_obj,
            'context': {
                'num': '25',
                'sort': default_sort
            },
            'expectedprev': '?num=25&page=2',
            'expectednext': '?num=25&page=4'
        }, {
            'name': 'Test D',
            'page_obj': page_obj,
            'context': {
                'num': '25',
                'sort': 'excerpt'
            },
            'expectedprev': '?sort=excerpt&num=25&page=2',
            'expectednext': '?sort=excerpt&num=25&page=4'
        }, {
            'name': 'Test E',
            'page_obj': None,
            'context': {
                'num': '25',
                'sort': 'feedback'
            },
            'expectedprev': None,
            'expectednext': None
        }]

        for test_case in test_cases:
            context = test_case['context']
            context['page_obj'] = test_case['page_obj']
            returned_prev_string = decision_list.build_prev_query_string(
                context)
            returned_next_string = decision_list.build_next_query_string(
                context)
            self.assertEquals(returned_prev_string, test_case['expectedprev'],
                              'Did not get expected previous query')
            self.assertEquals(returned_next_string, test_case['expectednext'],
                              'Did not get expected next query')