Skip to content

Commit 7d4e3fc

Browse files
author
Daniel J Holmes (jaitaiwan)
committed
Merge branch 'release/1.9' into develop
2 parents c3d8b72 + acdd693 commit 7d4e3fc

12 files changed

+770
-801
lines changed

.gitignore

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
11
*.py?
22
*.egg-info
33
*.swp
4+
.coverage
5+
coverage.xml
6+
nosetests.xml
7+
.tox

README.md

+15-361
Large diffs are not rendered by default.

example/appengine_oauth.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ def is_valid(self):
8686
request = self.get_oauth_request()
8787
client = self.get_client(request)
8888
params = self._server.verify_request(request, client, None)
89-
except Exception, e:
89+
except Exception as e:
9090
raise e
9191

9292
return client
@@ -95,7 +95,7 @@ class SampleHandler(OAuthHandler):
9595
def get(self):
9696
try:
9797
client = self.is_valid()
98-
except Exception, e:
98+
except Exception as e:
9999
self.error(500)
100100
self.response.out.write(e)
101101

example/client.py

+56-40
Original file line numberDiff line numberDiff line change
@@ -41,125 +41,141 @@
4141
CALLBACK_URL = 'http://printer.example.com/request_token_ready'
4242
RESOURCE_URL = 'http://photos.example.net/photos'
4343

44-
# key and secret granted by the service provider for this consumer application - same as the MockOAuthDataStore
44+
# key and secret granted by the service provider for this consumer
45+
# application - same as the MockOAuthDataStore
4546
CONSUMER_KEY = 'key'
4647
CONSUMER_SECRET = 'secret'
4748

4849
# example client using httplib with headers
4950
class SimpleOAuthClient(oauth.OAuthClient):
5051

51-
def __init__(self, server, port=httplib.HTTP_PORT, request_token_url='', access_token_url='', authorization_url=''):
52+
def __init__(self, server, port=httplib.HTTP_PORT, request_token_url='',
53+
access_token_url='', authorization_url=''):
5254
self.server = server
5355
self.port = port
5456
self.request_token_url = request_token_url
5557
self.access_token_url = access_token_url
5658
self.authorization_url = authorization_url
57-
self.connection = httplib.HTTPConnection("%s:%d" % (self.server, self.port))
59+
self.connection = httplib.HTTPConnection(
60+
"%s:%d" % (self.server, self.port))
5861

5962
def fetch_request_token(self, oauth_request):
6063
# via headers
6164
# -> OAuthToken
62-
self.connection.request(oauth_request.http_method, self.request_token_url, headers=oauth_request.to_header())
65+
self.connection.request(oauth_request.http_method,
66+
self.request_token_url, headers=oauth_request.to_header())
6367
response = self.connection.getresponse()
6468
return oauth.OAuthToken.from_string(response.read())
6569

6670
def fetch_access_token(self, oauth_request):
6771
# via headers
6872
# -> OAuthToken
69-
self.connection.request(oauth_request.http_method, self.access_token_url, headers=oauth_request.to_header())
73+
self.connection.request(oauth_request.http_method,
74+
self.access_token_url, headers=oauth_request.to_header())
7075
response = self.connection.getresponse()
7176
return oauth.OAuthToken.from_string(response.read())
7277

7378
def authorize_token(self, oauth_request):
7479
# via url
7580
# -> typically just some okay response
76-
self.connection.request(oauth_request.http_method, oauth_request.to_url())
81+
self.connection.request(oauth_request.http_method,
82+
oauth_request.to_url())
7783
response = self.connection.getresponse()
7884
return response.read()
7985

8086
def access_resource(self, oauth_request):
8187
# via post body
8288
# -> some protected resources
8389
headers = {'Content-Type' :'application/x-www-form-urlencoded'}
84-
self.connection.request('POST', RESOURCE_URL, body=oauth_request.to_postdata(), headers=headers)
90+
self.connection.request('POST', RESOURCE_URL,
91+
body=oauth_request.to_postdata(),
92+
headers=headers)
8593
response = self.connection.getresponse()
8694
return response.read()
8795

8896
def run_example():
8997

9098
# setup
91-
print '** OAuth Python Library Example **'
92-
client = SimpleOAuthClient(SERVER, PORT, REQUEST_TOKEN_URL, ACCESS_TOKEN_URL, AUTHORIZATION_URL)
99+
print('** OAuth Python Library Example **')
100+
client = SimpleOAuthClient(SERVER, PORT, REQUEST_TOKEN_URL,
101+
ACCESS_TOKEN_URL, AUTHORIZATION_URL)
93102
consumer = oauth.OAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET)
94103
signature_method_plaintext = oauth.OAuthSignatureMethod_PLAINTEXT()
95104
signature_method_hmac_sha1 = oauth.OAuthSignatureMethod_HMAC_SHA1()
96105
pause()
97106

98107
# get request token
99-
print '* Obtain a request token ...'
108+
print('* Obtain a request token ...')
100109
pause()
101-
oauth_request = oauth.OAuthRequest.from_consumer_and_token(consumer, callback=CALLBACK_URL, http_url=client.request_token_url)
110+
oauth_request = oauth.OAuthRequest.from_consumer_and_token(
111+
consumer, callback=CALLBACK_URL, http_url=client.request_token_url)
102112
oauth_request.sign_request(signature_method_plaintext, consumer, None)
103-
print 'REQUEST (via headers)'
104-
print 'parameters: %s' % str(oauth_request.parameters)
113+
print('REQUEST (via headers)')
114+
print('parameters: %s' % str(oauth_request.parameters))
105115
pause()
106116
token = client.fetch_request_token(oauth_request)
107-
print 'GOT'
108-
print 'key: %s' % str(token.key)
109-
print 'secret: %s' % str(token.secret)
110-
print 'callback confirmed? %s' % str(token.callback_confirmed)
117+
print('GOT')
118+
print('key: %s' % str(token.key))
119+
print('secret: %s' % str(token.secret))
120+
print('callback confirmed? %s' % str(token.callback_confirmed))
111121
pause()
112122

113-
print '* Authorize the request token ...'
123+
print('* Authorize the request token ...')
114124
pause()
115-
oauth_request = oauth.OAuthRequest.from_token_and_callback(token=token, http_url=client.authorization_url)
116-
print 'REQUEST (via url query string)'
117-
print 'parameters: %s' % str(oauth_request.parameters)
125+
oauth_request = oauth.OAuthRequest.from_token_and_callback(
126+
token=token, http_url=client.authorization_url)
127+
print('REQUEST (via url query string)')
128+
print('parameters: %s' % str(oauth_request.parameters))
118129
pause()
119130
# this will actually occur only on some callback
120131
response = client.authorize_token(oauth_request)
121-
print 'GOT'
122-
print response
132+
print('GOT')
133+
print(response)
123134
# sad way to get the verifier
124135
import urlparse, cgi
125136
query = urlparse.urlparse(response)[4]
126137
params = cgi.parse_qs(query, keep_blank_values=False)
127138
verifier = params['oauth_verifier'][0]
128-
print 'verifier: %s' % verifier
139+
print('verifier: %s' % verifier)
129140
pause()
130141

131142
# get access token
132-
print '* Obtain an access token ...'
143+
print('* Obtain an access token ...')
133144
pause()
134-
oauth_request = oauth.OAuthRequest.from_consumer_and_token(consumer, token=token, verifier=verifier, http_url=client.access_token_url)
145+
oauth_request = oauth.OAuthRequest.from_consumer_and_token(
146+
consumer, token=token, verifier=verifier,
147+
http_url=client.access_token_url)
135148
oauth_request.sign_request(signature_method_plaintext, consumer, token)
136-
print 'REQUEST (via headers)'
137-
print 'parameters: %s' % str(oauth_request.parameters)
149+
print('REQUEST (via headers)')
150+
print('parameters: %s' % str(oauth_request.parameters))
138151
pause()
139152
token = client.fetch_access_token(oauth_request)
140-
print 'GOT'
141-
print 'key: %s' % str(token.key)
142-
print 'secret: %s' % str(token.secret)
153+
print('GOT')
154+
print('key: %s' % str(token.key))
155+
print('secret: %s' % str(token.secret))
143156
pause()
144157

145158
# access some protected resources
146-
print '* Access protected resources ...'
159+
print('* Access protected resources ...')
147160
pause()
148-
parameters = {'file': 'vacation.jpg', 'size': 'original'} # resource specific params
149-
oauth_request = oauth.OAuthRequest.from_consumer_and_token(consumer, token=token, http_method='POST', http_url=RESOURCE_URL, parameters=parameters)
161+
parameters = {'file': 'vacation.jpg',
162+
'size': 'original'} # resource specific params
163+
oauth_request = oauth.OAuthRequest.from_consumer_and_token(consumer,
164+
token=token, http_method='POST', http_url=RESOURCE_URL,
165+
parameters=parameters)
150166
oauth_request.sign_request(signature_method_hmac_sha1, consumer, token)
151-
print 'REQUEST (via post body)'
152-
print 'parameters: %s' % str(oauth_request.parameters)
167+
print('REQUEST (via post body)')
168+
print('parameters: %s' % str(oauth_request.parameters))
153169
pause()
154170
params = client.access_resource(oauth_request)
155-
print 'GOT'
156-
print 'non-oauth parameters: %s' % params
171+
print('GOT')
172+
print('non-oauth parameters: %s' % params)
157173
pause()
158174

159175
def pause():
160-
print ''
176+
print('')
161177
time.sleep(1)
162178

163179
if __name__ == '__main__':
164180
run_example()
165-
print 'Done.'
181+
print('Done.')

example/server.py

+22-12
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,11 @@ def lookup_token(self, token_type, token):
6060
return None
6161

6262
def lookup_nonce(self, oauth_consumer, oauth_token, nonce):
63-
if oauth_token and oauth_consumer.key == self.consumer.key and (oauth_token.key == self.request_token.key or oauth_token.key == self.access_token.key) and nonce == self.nonce:
63+
if (oauth_token and
64+
oauth_consumer.key == self.consumer.key and
65+
(oauth_token.key == self.request_token.key or
66+
oauth_token.key == self.access_token.key) and
67+
nonce == self.nonce):
6468
return self.nonce
6569
return None
6670

@@ -74,7 +78,9 @@ def fetch_request_token(self, oauth_consumer, oauth_callback):
7478
return None
7579

7680
def fetch_access_token(self, oauth_consumer, oauth_token, oauth_verifier):
77-
if oauth_consumer.key == self.consumer.key and oauth_token.key == self.request_token.key and oauth_verifier == self.verifier:
81+
if (oauth_consumer.key == self.consumer.key and
82+
oauth_token.key == self.request_token.key and
83+
oauth_verifier == self.verifier):
7884
# want to check here if token is authorized
7985
# for mock store, we assume it is
8086
return self.access_token
@@ -91,8 +97,10 @@ class RequestHandler(BaseHTTPRequestHandler):
9197

9298
def __init__(self, *args, **kwargs):
9399
self.oauth_server = oauth.OAuthServer(MockOAuthDataStore())
94-
self.oauth_server.add_signature_method(oauth.OAuthSignatureMethod_PLAINTEXT())
95-
self.oauth_server.add_signature_method(oauth.OAuthSignatureMethod_HMAC_SHA1())
100+
self.oauth_server.add_signature_method(
101+
oauth.OAuthSignatureMethod_PLAINTEXT())
102+
self.oauth_server.add_signature_method(
103+
oauth.OAuthSignatureMethod_HMAC_SHA1())
96104
BaseHTTPRequestHandler.__init__(self, *args, **kwargs)
97105

98106
# example way to send an oauth error
@@ -119,7 +127,8 @@ def do_GET(self):
119127
pass
120128

121129
# construct the oauth request from the request parameters
122-
oauth_request = oauth.OAuthRequest.from_request(self.command, self.path, headers=self.headers, query_string=postdata)
130+
oauth_request = oauth.OAuthRequest.from_request(self.command,
131+
self.path, headers=self.headers, query_string=postdata)
123132

124133
# request token
125134
if self.path.startswith(REQUEST_TOKEN_URL):
@@ -131,7 +140,7 @@ def do_GET(self):
131140
self.end_headers()
132141
# return the token
133142
self.wfile.write(token.to_string())
134-
except oauth.OAuthError, err:
143+
except oauth.OAuthError as err:
135144
self.send_oauth_error(err)
136145
return
137146

@@ -148,7 +157,7 @@ def do_GET(self):
148157
self.end_headers()
149158
# return the callback url (to show server has it)
150159
self.wfile.write(token.get_callback_url())
151-
except oauth.OAuthError, err:
160+
except oauth.OAuthError as err:
152161
self.send_oauth_error(err)
153162
return
154163

@@ -162,21 +171,22 @@ def do_GET(self):
162171
self.end_headers()
163172
# return the token
164173
self.wfile.write(token.to_string())
165-
except oauth.OAuthError, err:
174+
except oauth.OAuthError as err:
166175
self.send_oauth_error(err)
167176
return
168177

169178
# protected resources
170179
if self.path.startswith(RESOURCE_URL):
171180
try:
172181
# verify the request has been oauth authorized
173-
consumer, token, params = self.oauth_server.verify_request(oauth_request)
182+
consumer, token, params = self.oauth_server.verify_request(
183+
oauth_request)
174184
# send okay response
175185
self.send_response(200, 'OK')
176186
self.end_headers()
177187
# return the extra parameters - just for something to return
178188
self.wfile.write(str(params))
179-
except oauth.OAuthError, err:
189+
except oauth.OAuthError as err:
180190
self.send_oauth_error(err)
181191
return
182192

@@ -186,10 +196,10 @@ def do_POST(self):
186196
def main():
187197
try:
188198
server = HTTPServer(('', 8080), RequestHandler)
189-
print 'Test server running...'
199+
print('Test server running...')
190200
server.serve_forever()
191201
except KeyboardInterrupt:
192202
server.socket.close()
193203

194204
if __name__ == '__main__':
195-
main()
205+
main()

0 commit comments

Comments
 (0)