Example #1
0
 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)
     )
Example #2
0
        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
Example #3
0
        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