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')
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')