def test_prepare_headers_ignore_data(self):
     self.assertEqual(
         prepare_headers(self.auth_and_data, {}),
         {u'Authorization': self.norealm_authorization_header})
     self.assertEqual(
         prepare_headers(self.auth_and_data, {}, realm=self.realm),
         {u'Authorization': self.withrealm_authorization_header})
 def test_prepare_headers(self):
     self.assertEqual(
         prepare_headers(self.auth_only_params, {}),
         {u'Authorization': self.norealm_authorization_header})
     self.assertEqual(
         prepare_headers(self.auth_only_params, {}, realm=self.realm),
         {u'Authorization': self.withrealm_authorization_header})
Exemple #3
0
    def _oauth_sign(self, url, body, content_type=u'application/x-www-form-urlencoded', method=u'POST'):
        """
        Signs request and returns signed Authorization header.
        """
        client_key = self.server.config.get('client_key', self.DEFAULT_CLIENT_KEY)
        client_secret = self.server.config.get('client_secret', self.DEFAULT_CLIENT_SECRET)
        client = oauthlib.oauth1.Client(
            client_key=unicode(client_key),
            client_secret=unicode(client_secret)
        )
        headers = {
            # This is needed for body encoding:
            'Content-Type': content_type,
        }

        # Calculate and encode body hash. See http://oauth.googlecode.com/svn/spec/ext/body_hash/1.0/oauth-bodyhash.html
        sha1 = hashlib.sha1()
        sha1.update(body)
        oauth_body_hash = unicode(base64.b64encode(sha1.digest()))  # pylint: disable=too-many-function-args
        params = client.get_oauth_params(None)
        params.append((u'oauth_body_hash', oauth_body_hash))
        mock_request = mock.Mock(
            uri=unicode(urllib.unquote(url)),
            headers=headers,
            body=u"",
            decoded_body=u"",
            oauth_params=params,
            http_method=unicode(method),
        )
        sig = client.get_oauth_signature(mock_request)
        mock_request.oauth_params.append((u'oauth_signature', sig))
        new_headers = parameters.prepare_headers(mock_request.oauth_params, headers, realm=None)
        return new_headers['Authorization']
 def create_authorization_header(self):
     return prepare_headers(self.params)