def test_ignores_body_params_if_content_type_is_not_urlencoded(self): oauth_params = dict( oauth_consumer_key=RFC_CLIENT_IDENTIFIER, oauth_token=RFC_TOKEN_IDENTIFIER, oauth_signature_method=SIGNATURE_METHOD_HMAC_SHA1, oauth_timestamp=RFC_TIMESTAMP_3, oauth_nonce=RFC_NONCE_3, ) self.assertEqual(_OAuthClient._generate_signature( HTTP_GET, # I Know ^ is a GET request and we're specifying a body in this # test. _generate_signature does not validate HTTP methods, # but only generates signatures. This example must produce # the same signature as in the RFC example, hence the test. RFC_RESOURCE_FULL_URL, params=None, body=b(""" body { font-family: "Lucida Grande", serif; } a:link { text-decoration: none; } """), headers={ HEADER_CONTENT_TYPE: CONTENT_TYPE_TEXT_CSS, }, oauth_consumer_secret=RFC_CLIENT_SECRET, oauth_token_secret=RFC_TOKEN_SECRET, oauth_params=oauth_params, ), utf8_encode(percent_decode(RFC_RESOURCE_REQUEST_SIGNATURE_ENCODED)))
def test_generates_signature(self): params = { "method": HTTP_POST, OAUTH_PARAM_REALM: RFC_REALM, "url": RFC_TEMP_URI, OAUTH_PARAM_CONSUMER_SECRET: RFC_CLIENT_SECRET, OAUTH_PARAM_TOKEN_SECRET: None, OAUTH_PARAM_SIGNATURE: RFC_TEMP_REQUEST_SIGNATURE, "oauth_params": dict( oauth_consumer_key=RFC_CLIENT_IDENTIFIER, oauth_signature_method=SIGNATURE_METHOD_HMAC_SHA1, oauth_timestamp=RFC_TIMESTAMP_1, oauth_nonce=RFC_NONCE_1, oauth_callback=RFC_OAUTH_CALLBACK_URI, ) } self.assertEqual(_OAuthClient._generate_signature( params["method"], params["url"], None, None, None, params[OAUTH_PARAM_CONSUMER_SECRET], params[OAUTH_PARAM_TOKEN_SECRET], params["oauth_params"], ), params[OAUTH_PARAM_SIGNATURE])
def test_generates_signature_including_urlencoded_body(self): oauth_params = dict( oauth_consumer_key=RFC_CLIENT_IDENTIFIER, oauth_token=RFC_TOKEN_IDENTIFIER, oauth_signature_method=SIGNATURE_METHOD_HMAC_SHA1, oauth_timestamp=RFC_TIMESTAMP_3, oauth_nonce=RFC_NONCE_3, ) self.assertEqual(_OAuthClient._generate_signature( HTTP_GET, # I Know ^ is a GET request and we're specifying a body in this # test. _generate_signature does not validate HTTP methods, # but only generates signatures. This example must produce # the same signature as in the RFC example, hence the test. RFC_RESOURCE_URI, params=None, body=b("file=vacation.jpg&size=original&oauth_ignored=IGNORED"), headers={ HEADER_CONTENT_TYPE: CONTENT_TYPE_FORM_URLENCODED, }, oauth_consumer_secret=RFC_CLIENT_SECRET, oauth_token_secret=RFC_TOKEN_SECRET, oauth_params=oauth_params, ), utf8_encode(percent_decode(RFC_RESOURCE_REQUEST_SIGNATURE_ENCODED)))