Exemplo n.º 1
0
 def test_url_join_trailing_slash(self):
     self.assertEqual(slumber.url_join("http://api.validic.com/", "v1/"),
                      "http://api.validic.com/v1/")
     self.assertEqual(
         slumber.url_join("http://api.validic.com/", "v1/",
                          "organizations/"),
         "http://api.validic.com/v1/organizations/")
Exemplo n.º 2
0
    def test_url_join_encoded_unicode(self):
        expected = "http://api.validic.com/t?st/"

        url = slumber.url_join("http://api.validic.com/", "t?st/")
        self.assertEqual(url, expected)

        url = slumber.url_join("http://api.validic.com/", "t?st/".decode('utf8').encode('utf8'))
        self.assertEqual(url, expected)
Exemplo n.º 3
0
    def test_url_join_encoded_unicode(self):
        expected = "http://example.com/tǝst/"

        url = slumber.url_join("http://example.com/", "tǝst/")
        self.assertEqual(url, expected)

        url = slumber.url_join("http://example.com/", "tǝst/".decode('utf8').encode('utf8'))
        self.assertEqual(url, expected)
Exemplo n.º 4
0
 def test_url_join_https_port(self):
     self.assertEqual(slumber.url_join("https://example.com:443/"),
                      "https://example.com:443/")
     self.assertEqual(slumber.url_join("https://example.com:443/", "test"),
                      "https://example.com:443/test")
     self.assertEqual(
         slumber.url_join("https://example.com:443/", "test", "example"),
         "https://example.com:443/test/example")
Exemplo n.º 5
0
    def test_url_join_encoded_unicode(self):
        expected = "http://api.validic.com/t?st/"

        url = slumber.url_join("http://api.validic.com/", "t?st/")
        self.assertEqual(url, expected)

        url = slumber.url_join("http://api.validic.com/",
                               "t?st/".decode('utf8').encode('utf8'))
        self.assertEqual(url, expected)
Exemplo n.º 6
0
 def test_url_join_http_port(self):
     self.assertEqual(slumber.url_join("http://api.validic.com:80/"),
                      "http://api.validic.com:80/")
     self.assertEqual(slumber.url_join("http://api.validic.com:80/", "v1"),
                      "http://api.validic.com:80/v1")
     self.assertEqual(
         slumber.url_join("http://api.validic.com:80/", "v1",
                          "organizations"),
         "http://api.validic.com:80/v1/organizations")
Exemplo n.º 7
0
    def test_url_join_mixed_unicode(self):
        # u"ǝ" == u"\u01dd", u"\u01dd".encode('utf-8') == b"\xc7\x9d"
        expected = six.u("http://example.com/r\u01dd/te/st")
        if (isinstance(expected, six.text_type)):
            expected = expected.encode('utf-8')

        url = slumber.url_join(six.b("http://example.com/r\xc7\x9d"),
                               bytearray(six.b("te")),
                               six.u("st"))
        if (isinstance(url, six.text_type)):
            url = url.encode('utf-8')

        self.assertEqual(url, expected)

        url = slumber.url_join(six.u("http://example.com"),
                               six.u("r\u01dd/te"),
                               bytearray(six.b("st")))
        if (isinstance(url, six.text_type)):
            url = url.encode('utf-8')

        self.assertEqual(url, expected)

        # check that non-ASCII args needing conversion raise TypeError
        self.assertRaises(TypeError, slumber.url_join,
                          six.u("http://example.com"), six.b("r\xc7\x9d"))

        self.assertRaises(TypeError, slumber.url_join,
                          six.b("http://example.com"), six.u("r\u01dd"))

        expected = six.u("http://example.com/te/st")
        if (isinstance(expected, six.text_type)):
            expected = expected.encode('utf-8')

        url = slumber.url_join(bytearray(six.b("http://example.com/")),
                               six.b("te"),
                               six.u("st"))
        if (isinstance(url, six.text_type)):
            url = url.encode('utf-8')

        self.assertEqual(url, expected)

        url = slumber.url_join(six.u("http://example.com/"),
                               six.u("te"),
                               six.b("st"))
        if (isinstance(url, six.text_type)):
            url = url.encode('utf-8')

        self.assertEqual(url, expected)
Exemplo n.º 8
0
    def pre(self, request):
        config = settings.ZIPPY_CONFIGURATION.get(self.reference_name)
        if not config:
            raise ImproperlyConfigured('No config: %s' % self.reference_name)

        # Headers we want from the proxying request.
        self.headers = {
            'Content-Type': request.META.get('CONTENT_TYPE'),
            'Accept': request.META.get('HTTP_ACCEPT')
        }
        self.body = str(request.raw_post_data)
        self.method = request.META['REQUEST_METHOD'].lower()
        # The URL is made up of the defined scheme and host plus the trailing
        # URL after the proxy in urls.py.
        root = len(reverse('provider.proxy',
                   kwargs={'reference_name':self.reference_name}))

        self.url = url_join(config['url'], request.META['PATH_INFO'][root:])
        # Add in the query string.
        query = request.META.get('QUERY_STRING')
        if query:
            self.url = '%s?%s' % (self.url, query)
        # Before we do the request, use curling to sign the request headers.
        log.info('%s: %s' % (self.method.upper(), self.url))
        sign_request(None, config['auth'], headers=self.headers,
                     method=self.method.upper(),
                     params={'oauth_token': 'not-implemented'},
                     url=self.url)
Exemplo n.º 9
0
    def test_url_join_encoded_unicode(self):
        expected = six.u("http://example.com/tǝst/")

        if expected.__class__.__name__ == "unicode":
            expected = expected.encode("utf-8")

        url = slumber.url_join("http://example.com/", six.u("tǝst/"))
        if url.__class__.__name__ == "unicode":
            url = url.encode("utf-8")

        self.assertEqual(url, expected)

        url = slumber.url_join("http://example.com/", six.u("tǝst/"))
        if url.__class__.__name__ == "unicode":
            url = url.encode("utf-8")

        self.assertEqual(url, expected)
 def get_resource_as_dict(cls, uri):
     kwargs = {}
     api = CandideitorgDocument.get_api()
     for key, value in api._store.iteritems():
         kwargs[key] = value
     kwargs.update({"base_url": url_join(api._store["base_url"], uri)})
     resource = Resource(**kwargs)
     dicti = resource.get()
     return dicti
 def get_resource_as_dict(cls, uri):
     kwargs = {}
     api = CandideitorgDocument.get_api()
     for key, value in api._store.iteritems():
         kwargs[key] = value
     kwargs.update({"base_url": url_join(api._store["base_url"], uri)})
     resource = Resource(**kwargs)
     dicti = resource.get()
     return dicti
Exemplo n.º 12
0
    def test_url_join_mixed_unicode(self):
        # u"ǝ" == u"\u01dd", u"\u01dd".encode('utf-8') == b"\xc7\x9d"
        expected = six.u("http://example.com/r\u01dd/te/st")
        if (isinstance(expected, six.text_type)):
            expected = expected.encode('utf-8')

        url = slumber.url_join(six.b("http://example.com/r\xc7\x9d"),
                               bytearray(six.b("te")), six.u("st"))
        if (isinstance(url, six.text_type)):
            url = url.encode('utf-8')

        self.assertEqual(url, expected)

        url = slumber.url_join(six.u("http://example.com"),
                               six.u("r\u01dd/te"), bytearray(six.b("st")))
        if (isinstance(url, six.text_type)):
            url = url.encode('utf-8')

        self.assertEqual(url, expected)

        # check that non-ASCII args needing conversion raise TypeError
        self.assertRaises(TypeError, slumber.url_join,
                          six.u("http://example.com"), six.b("r\xc7\x9d"))

        self.assertRaises(TypeError, slumber.url_join,
                          six.b("http://example.com"), six.u("r\u01dd"))

        expected = six.u("http://example.com/te/st")
        if (isinstance(expected, six.text_type)):
            expected = expected.encode('utf-8')

        url = slumber.url_join(bytearray(six.b("http://example.com/")),
                               six.b("te"), six.u("st"))
        if (isinstance(url, six.text_type)):
            url = url.encode('utf-8')

        self.assertEqual(url, expected)

        url = slumber.url_join(six.u("http://example.com/"), six.u("te"),
                               six.b("st"))
        if (isinstance(url, six.text_type)):
            url = url.encode('utf-8')

        self.assertEqual(url, expected)
Exemplo n.º 13
0
    def _get(self, url):
        # Strip the boku part out of the URL and insert the proxy instead.
        url = urlunparse(('', '') + urlparse(url)[2:])
        # url_join takes care of missing or extra / in urls, but we must strip
        # the first / off the url above.
        proxy = url_join(settings.BOKU_PROXY, 'boku', url[1:])

        # Now continue as normal, call the proxy.
        log.info('Boku proxy client call: {url}'.format(url=proxy))
        with statsd.timer('solitude.boku.api'):
            return requests.get(proxy)
Exemplo n.º 14
0
    def _get(self, url):
        # Strip the boku part out of the URL and insert the proxy instead.
        url = urlunparse(('', '') + urlparse(url)[2:])
        # url_join takes care of missing or extra / in urls, but we must strip
        # the first / off the url above.
        proxy = url_join(settings.BOKU_PROXY, 'boku', url[1:])

        # Now continue as normal, call the proxy.
        log.info('Boku proxy client call: {url}'.format(url=proxy))
        with statsd.timer('solitude.boku.api'):
            return requests.get(proxy)
Exemplo n.º 15
0
    def __getattr__(self, item):
        # See Slumber for what this is.
        if item.startswith("_"):
            raise AttributeError(item)

        kwargs = {}
        for key, value in self._store.iteritems():
            kwargs[key] = value

        kwargs.update({"base_url": url_join(self._store["base_url"], item)})

        return self._resource(**kwargs)
Exemplo n.º 16
0
    def __getattr__(self, item):
        # See Slumber for what this is.
        if item.startswith('_'):
            raise AttributeError(item)

        kwargs = {}
        for key, value in self._store.iteritems():
            kwargs[key] = value

        kwargs.update({'base_url': url_join(self._store["base_url"], item)})

        return self._resource(**kwargs)
Exemplo n.º 17
0
    def test_url_join_http(self):
        self.assertEqual(slumber.url_join("http://example.com/"), "http://example.com/")
        self.assertEqual(slumber.url_join("http://example.com/", "test"), "http://example.com/test")
        self.assertEqual(slumber.url_join("http://example.com/", "test", "example"), "http://example.com/test/example")

        self.assertEqual(slumber.url_join("http://example.com"), "http://example.com/")
        self.assertEqual(slumber.url_join("http://example.com", "test"), "http://example.com/test")
        self.assertEqual(slumber.url_join("http://example.com", "test", "example"), "http://example.com/test/example")
Exemplo n.º 18
0
    def test_url_join_https(self):
        self.assertEqual(slumber.url_join("https://example.com/"), "https://example.com/")
        self.assertEqual(slumber.url_join("https://example.com/", "test"), "https://example.com/test")
        self.assertEqual(slumber.url_join("https://example.com/", "test", "example"), "https://example.com/test/example")

        self.assertEqual(slumber.url_join("https://example.com"), "https://example.com/")
        self.assertEqual(slumber.url_join("https://example.com", "test"), "https://example.com/test")
        self.assertEqual(slumber.url_join("https://example.com", "test", "example"), "https://example.com/test/example")
Exemplo n.º 19
0
    def test_url_join_path(self):
        self.assertEqual(slumber.url_join("/"), "/")
        self.assertEqual(slumber.url_join("/", "v1"), "/v1")
        self.assertEqual(slumber.url_join("/", "v1", "organizations"), "/v1/organizations")

        self.assertEqual(slumber.url_join("/v1/"), "/v1/")
        self.assertEqual(slumber.url_join("/v1/", "organizations"), "/v1/organizations")
        self.assertEqual(slumber.url_join("/v1/", "organizations", self.settings.getOrgId()), "/v1/organizations/"+self.settings.getOrgId())
Exemplo n.º 20
0
    def test_url_join_path(self):
        self.assertEqual(slumber.url_join("/"), "/")
        self.assertEqual(slumber.url_join("/", "test"), "/test")
        self.assertEqual(slumber.url_join("/", "test", "example"), "/test/example")

        self.assertEqual(slumber.url_join("/path/"), "/path/")
        self.assertEqual(slumber.url_join("/path/", "test"), "/path/test")
        self.assertEqual(slumber.url_join("/path/", "test", "example"), "/path/test/example")
Exemplo n.º 21
0
    def test_url_join_https(self):
        self.assertEqual(slumber.url_join("https://api.validic.com/"), "https://api.validic.com/")
        self.assertEqual(slumber.url_join("https://api.validic.com/", "v1"), "https://api.validic.com/v1")
        self.assertEqual(slumber.url_join("https://api.validic.com/", "v1", "organizations"), "https://api.validic.com/v1/organizations")

        self.assertEqual(slumber.url_join("https://api.validic.com"), "https://api.validic.com/")
        self.assertEqual(slumber.url_join("https://api.validic.com", "v1"), "https://api.validic.com/v1")
        self.assertEqual(slumber.url_join("https://api.validic.com", "v1", "organizations"), "https://api.validic.com/v1/organizations")
Exemplo n.º 22
0
    def test_url_join_path(self):
        self.assertEqual(slumber.url_join("/"), "/")
        self.assertEqual(slumber.url_join("/", "v1"), "/v1")
        self.assertEqual(slumber.url_join("/", "v1", "organizations"),
                         "/v1/organizations")

        self.assertEqual(slumber.url_join("/v1/"), "/v1/")
        self.assertEqual(slumber.url_join("/v1/", "organizations"),
                         "/v1/organizations")
        self.assertEqual(
            slumber.url_join("/v1/", "organizations",
                             self.settings.getOrgId()),
            "/v1/organizations/" + self.settings.getOrgId())
Exemplo n.º 23
0
    def pre(self, request):
        # Headers we want from the proxying request.
        self.headers = {
            'Content-Type': request.META.get('CONTENT_TYPE'),
            'Accept': request.META.get('HTTP_ACCEPT')
        }
        self.body = str(request.raw_post_data)
        self.method = request.META['REQUEST_METHOD'].lower()
        # The URL is made up of the defined scheme and host plus the trailing
        # URL after the proxy in urls.py.
        root = len(reverse('provider.proxy',
                   kwargs={'reference_name': self.reference_name}))

        self.url = url_join(self.config['url'],
                            request.META['PATH_INFO'][root:])
        # Add in the query string.
        query = request.META.get('QUERY_STRING')
        if query:
            self.url = qs_join(url=self.url, query=query)
        # Before we do the request, use curling to sign the request headers.
        log.info('%s: %s' % (self.method.upper(), self.url))
        self.sign(request)
Exemplo n.º 24
0
Arquivo: api.py Projeto: ethurgood/nap
    def __getattr__(self, item):

        if item.startswith("_"):
            raise AttributeError(item)

        kwargs = {}
        for key, value in self._store.iteritems():
            kwargs[key] = value

        kwargs.update({"base_url": url_join(self._store["base_url"], item)})

        if item in self.resource_registry:

            default_kwargs = {
                "resource_cls": self.resource_registry[item],
                "resource_registry": self.resource_registry,
                'root_url': self._store['root_url']
            }
            kwargs.update(default_kwargs)
            return NapResource(**kwargs)
        else:
            return Resource(**kwargs)
Exemplo n.º 25
0
    def test_url_join_https(self):
        self.assertEqual(slumber.url_join("https://api.validic.com/"),
                         "https://api.validic.com/")
        self.assertEqual(slumber.url_join("https://api.validic.com/", "v1"),
                         "https://api.validic.com/v1")
        self.assertEqual(
            slumber.url_join("https://api.validic.com/", "v1",
                             "organizations"),
            "https://api.validic.com/v1/organizations")

        self.assertEqual(slumber.url_join("https://api.validic.com"),
                         "https://api.validic.com/")
        self.assertEqual(slumber.url_join("https://api.validic.com", "v1"),
                         "https://api.validic.com/v1")
        self.assertEqual(
            slumber.url_join("https://api.validic.com", "v1", "organizations"),
            "https://api.validic.com/v1/organizations")
Exemplo n.º 26
0
    def pre(self, request):
        # Headers we want from the proxying request.
        self.headers = {
            'Content-Type': request.META.get('CONTENT_TYPE'),
            'Accept': request.META.get('HTTP_ACCEPT')
        }
        self.body = str(request.body)
        self.method = request.META['REQUEST_METHOD'].lower()
        # The URL is made up of the defined scheme and host plus the trailing
        # URL after the proxy in urls.py.
        root = len(
            reverse('provider.proxy',
                    kwargs={'reference_name': self.reference_name}))

        self.url = url_join(self.config['url'],
                            request.META['PATH_INFO'][root:])
        # Add in the query string.
        query = request.META.get('QUERY_STRING')
        if query:
            self.url = qs_join(url=self.url, query=query)
        # Before we do the request, use curling to sign the request headers.
        log.info('%s: %s' % (self.method.upper(), self.url))
        self.sign(request)
Exemplo n.º 27
0
 def getUserStorefrontUrl(self, token):
     return slumber.url_join("https://app.validic.com/", self.orgId, token)
Exemplo n.º 28
0
 def test_url_join_trailing_slash(self):
     self.assertEqual(slumber.url_join("http://example.com/", "test/"),
                      "http://example.com/test/")
     self.assertEqual(
         slumber.url_join("http://example.com/", "test/", "example/"),
         "http://example.com/test/example/")
Exemplo n.º 29
0
 def test_url_join_trailing_slash(self):
     self.assertEqual(slumber.url_join("http://example.com/", "test/"), "http://example.com/test/")
     self.assertEqual(slumber.url_join("http://example.com/", "test/", "example/"), "http://example.com/test/example/")
Exemplo n.º 30
0
 def test_url_join_decoded_unicode(self):
     url = slumber.url_join("http://example.com/", six.u("tǝst/"))
     expected = six.u("http://example.com/tǝst/")
     self.assertEqual(url, expected)
Exemplo n.º 31
0
 def test_url_join_http_port(self):
     self.assertEqual(slumber.url_join("http://api.validic.com:80/"), "http://api.validic.com:80/")
     self.assertEqual(slumber.url_join("http://api.validic.com:80/", "v1"), "http://api.validic.com:80/v1")
     self.assertEqual(slumber.url_join("http://api.validic.com:80/", "v1", "organizations"), "http://api.validic.com:80/v1/organizations")
Exemplo n.º 32
0
 def test_url_join_http_port(self):
     self.assertEqual(slumber.url_join("http://example.com:80/"), "http://example.com:80/")
     self.assertEqual(slumber.url_join("http://example.com:80/", "test"), "http://example.com:80/test")
     self.assertEqual(slumber.url_join("http://example.com:80/", "test", "example"), "http://example.com:80/test/example")
Exemplo n.º 33
0
 def test_url_join_trailing_slash(self):
     self.assertEqual(slumber.url_join("http://api.validic.com/", "v1/"), "http://api.validic.com/v1/")
     self.assertEqual(slumber.url_join("http://api.validic.com/", "v1/", "organizations/"), "http://api.validic.com/v1/organizations/")
Exemplo n.º 34
0
 def getUserStorefrontUrl(self,token):
     return slumber.url_join("https://app.validic.com/",self.orgId,token)
Exemplo n.º 35
0
 def test_url_join_decoded_unicode(self):
     url = slumber.url_join(six.u("http://examplǝ.com/"), six.u("tǝst/"))
     expected = six.u("http://examplǝ.com/tǝst/")
     self.assertEqual(url, expected)