def test_properties_copied():
    """Certain properties should be copied to the wrapped resource."""
    response = MockResponse(json.dumps({'foo': 'bar'}),
                            status_code=200,
                            error='This is an error',
                            url='http://example.com')

    resource = wrapped_resource(response)
    eq_(200, resource.status_code)
    eq_('http://example.com', resource.url)
    response = MockResponse(json.dumps('This is an error'),
                            status_code=400,
                            error='This is an error',
                            url='http://example.com')

    resource = wrapped_resource(response)
    eq_(400, resource.status_code)
    eq_('"This is an error"', resource.error)
    eq_('http://example.com', resource.url)
Esempio n. 2
0
 def _refresh_token_flow(self):
     """Given a refresh token, obtain a new access token."""
     url = '%s%s/oauth2/token' % (self.scheme, self.site)
     options = {
         'grant_type': 'refresh_token',
         'client_id': self.options.get('client_id'),
         'client_secret': self.options.get('client_secret'),
         'refresh_token': self.options.get('refresh_token')
     }
     options.update({
         'verify_ssl': self.options.get('verify_ssl', True),
         'proxies': self.options.get('proxies', None)
     })
     self.token = wrapped_resource(
         make_request('post', url, options))
     self.access_token = self.token.access_token
Esempio n. 3
0
    def _request(self, method, resource, **kwargs):
        """Given an HTTP method, a resource name and kwargs, construct a
        request and return the response.
        """
        url = self._resolve_resource_name(resource)

        if hasattr(self, 'access_token'):
            kwargs.update(dict(access_token=self.access_token))
        if hasattr(self, 'client_id'):
            kwargs.update(dict(client_id=self.client_id))

        kwargs.update({
            'verify_ssl': self.options.get('verify_ssl', True),
            'proxies': self.options.get('proxies', None)
        })
        return wrapped_resource(make_request(method, url, kwargs))
Esempio n. 4
0
 def _credentials_flow(self):
     """Given a username and password, obtain an access token."""
     url = '%s%s/oauth2/token' % (self.scheme, self.site)
     options = {
         'client_id': self.options.get('client_id'),
         'client_secret': self.options.get('client_secret'),
         'username': self.options.get('username'),
         'password': self.options.get('password'),
         'scope': getattr(self, 'scope', ''),
         'grant_type': 'password'
     }
     options.update({
         'verify_ssl': self.options.get('verify_ssl', True),
         'proxies': self.options.get('proxies', None)
     })
     self.token = wrapped_resource(
         make_request('post', url, options))
     self.access_token = self.token.access_token
Esempio n. 5
0
 def exchange_token(self, code):
     """Given the value of the code parameter, request an access token."""
     url = '%s%s/oauth2/access_token' % (self.scheme, self.site)
     options = {
         'grant_type': 'authorization_code',
         'redirect_uri': self.options.get('redirect_uri'),
         'client_id': self.options.get('client_id'),
         'client_secret': self.options.get('client_secret'),
         'code': code,
     }
     options.update({
         'verify_ssl': self.options.get('verify_ssl', True),
         'proxies': self.options.get('proxies', None)
     })
     self.token = wrapped_resource(
         make_request('post', url, options))
     self.access_token = self.token.access_token
     return self.token
def test_json_object():
    """Verify that a json object is wrapped in a Resource object."""
    resource = wrapped_resource(MockResponse(json.dumps({'foo': 'bar'})))
    assert isinstance(resource, Resource)
    eq_('bar', resource.foo)
def test_json_list():
    """Verify that a json list is wrapped in a ResourceList object."""
    resources = wrapped_resource(MockResponse(json.dumps([{'foo': 'bar'}])))
    assert isinstance(resources, ResourceList)
    eq_(1, len(resources))
    eq_('bar', resources[0].foo)