def test_url_get_query_singular(self): result = UrlUtils.get_query_singular(self.test_url, 'oauth_consumer_key') self.assertEqual( result, 'ck_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' ) result = UrlUtils.get_query_singular(self.test_url, 'filter[limit]') self.assertEqual( str(result), str(2) )
def process_headers(self, response): """ Process the headers in a response to get info about pagination """ headers = response.headers if Registrar.DEBUG_API: Registrar.register_message("headers: %s" % str(headers)) if self.total_pages_key in headers: self.total_pages = int(headers.get(self.total_pages_key, '')) if self.total_items_key in headers: self.total_items = int(headers.get(self.total_items_key, '')) prev_endpoint = self.next_endpoint self.next_endpoint = None for rel, link in response.links.items(): if rel == 'next' and link.get('url'): next_response_url = link['url'] self.next_page = int( UrlUtils.get_query_singular( next_response_url, self.pagination_number_key)) if not self.next_page: return assert \ self.next_page <= self.total_pages, \ "next page (%s) should be lte total pages (%s)" \ % (str(self.next_page), str(self.total_pages)) self.next_endpoint = UrlUtils.set_query_singular( prev_endpoint, self.pagination_number_key, self.next_page) if self.next_page: self.offset = (self.limit * self.next_page) + 1
def processHeaders(self, response): headers = response.headers if Registrar.DEBUG_API: Registrar.registerMessage("headers: %s" % str(headers)) if self.service.namespace == 'wp-api': total_pages_key = 'X-WP-TotalPages' total_items_key = 'X-WP-Total' else: total_pages_key = 'X-WC-TotalPages' total_items_key = 'X-WC-Total' if total_items_key in headers: self.total_pages = int(headers.get(total_pages_key,'')) if total_pages_key in headers: self.total_items = int(headers.get(total_items_key,'')) # if self.progressCounter is None: # self.progressCounter = ProgressCounter(total=self.total_pages) # self.stopNextIteration = True prev_endpoint = self.next_endpoint self.next_endpoint = None for rel, link in response.links.items(): if rel == 'next' and link.get('url'): next_response_url = link['url'] # if Registrar.DEBUG_API: # Registrar.registerMessage('next_response_url: %s' % str(next_response_url)) self.next_page = int(UrlUtils.get_query_singular(next_response_url, 'page')) if not self.next_page: return assert \ self.next_page <= self.total_pages, \ "next page (%s) should be lte total pages (%s)" \ % (str(self.next_page), str(self.total_pages)) self.next_endpoint = UrlUtils.set_query_singular(prev_endpoint,'page', self.next_page) # if Registrar.DEBUG_API: # Registrar.registerMessage('next_endpoint: %s' % str(self.next_endpoint)) if self.next_page: self.offset = (self.limit * self.next_page) + 1