def testConcatenate(self): requests = ( ("GET", "http://example.com", "n=v", "GET&http%3A%2F%2Fexample.com&n%3Dv"), ( "POST", "https://photos.example.net/request_token", "oauth_version=1.0&oauth_consumer_key=dpf43f3p2l4k3l03&" "oauth_timestamp=1191242090&oauth_nonce=hsu94j3884jdopsl&" "oauth_signature_method=PLAINTEXT&oauth_signature=ignored", "POST&https%3A%2F%2Fphotos.example.net%2Frequest_token&oauth" "_consumer_key%3Ddpf43f3p2l4k3l03%26oauth_nonce%3Dhsu94j" "3884jdopsl%26oauth_signature_method%3DPLAINTEXT%26oauth" "_timestamp%3D1191242090%26oauth_version%3D1.0", ), ( "GET", "http://photos.example.net/photos", "file=vacation.jpg&size=original&oauth_version=1.0&" "oauth_consumer_key=dpf43f3p2l4k3l03&oauth_token=nnch" "734d00sl2jdk&oauth_timestamp=1191242096&oauth_nonce=" "kllo9940pd9333jh&oauth_signature=ignored&oauth_signa" "ture_method=HMAC-SHA1", "GET&http%3A%2F%2Fphotos.example.net%2Fphotos&file%3Dvacati" "on.jpg%26oauth_consumer_key%3Ddpf43f3p2l4k3l03%26oauth" "_nonce%3Dkllo9940pd9333jh%26oauth_signature_method%3DH" "MAC-SHA1%26oauth_timestamp%3D1191242096%26oauth_token%3D" "nnch734d00sl2jdk%26oauth_version%3D1.0%26size%3Doriginal", ), ) for r in requests: req = OAuthRequest(MockRequest((r[0], r[2]), method=r[0], uri=r[1])) self.assertEqual(req.signature_base_string(), r[3])
def login(self, request): oauth_request = OAuthRequest(request) if oauth_request.is_oauth(): try: oauth_request.validate_access() except OAuthError, e: return e.get_response() request.oauth = oauth_request request.user = oauth_request.token.user
def testNormalization(self): query_strings = ( ("name", "name="), ("a=b", "a=b"), ("a=b&c=d", "a=b&c=d"), ("a=x!y&a=x+y", "a=x%20y&a=x%21y"), ("x!y=a&x=a", "x=a&x%21y=a"), ) for qs in query_strings: req = OAuthRequest(MockRequest(("GET", qs[0]))) self.assertEqual(req.normalized_params(), qs[1])
def access_token(request): oauth_request = OAuthRequest(request) try: oauth_request.validate() if oauth_request.token is None: raise OAuthMissingParamError if oauth_request.token.is_access(): oauth_request.validate_session() token = oauth_request.token.renew() else: token = oauth_request.token.exchange() return HttpResponse(token.to_string()) except OAuthError, e: return e.get_response()