def test_method_extend(self): """Test that method extend increments appropriate instance variables""" original_data = { "Entities": { "@total": "100", "@results": "5", "@page": "1", "@page-size": "5", "@href": "https://supportcenteronline.com/api/v1/1234/1234/Ticket?_output_=json&_pageSize_=5", "Ticket": [{'test': '123'}] } } additional_data = { "Entities": { "@total": "100", "@results": "5", "@page": "2", "@page-size": "5", "@href": "https://supportcenteronline.com/api/v1/1234/1234/Ticket?_output_=json&_pageSize_=5", "Ticket": [{'test': '456'}] } } expected_data = { 'total': 100, 'number_returned': 10, 'request_url': "https://supportcenteronline.com/api/v1/1234/1234/Ticket?_output_=json&_pageSize_=5", 'page': 2, 'resource': 'Ticket', 'has_next_page': True, 'results': [{'test': '123'}, {'test': '456'}] } response = Response(original_data) response.extend(additional_data) self.assertEqual(expected_data, response.dict())
def get(self, query_parameters=None): """Fetch data from the Parature API""" if not query_parameters: query_parameters = {} paginate = query_parameters.get('paginate', False) request_url = self._create_request_url(query_parameters) r = requests.get(request_url) if r.status_code != 200: raise Exception response = Response(r.json()) while paginate and response.has_next_page: request_url = response.get_next_page_url(self.token) r = requests.get(request_url) response.extend(r.json()) return response