Skip to content

Commit 007ac36

Browse files
committed
Fix p3k tests broken in merge
1 parent bf62502 commit 007ac36

File tree

3 files changed

+32
-24
lines changed

3 files changed

+32
-24
lines changed

oauth2/__init__.py

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@
4040
from ._compat import unquote
4141
from ._compat import unquote_to_bytes
4242
from ._compat import urlencode
43+
from ._compat import urlsplit
44+
from ._compat import urlunsplit
4345
from ._compat import urlparse
4446
from ._compat import urlunparse
4547
from ._version import __version__
@@ -355,12 +357,11 @@ def __init__(self, method=HTTP_METHOD, url=None, parameters=None,
355357
self.body = body
356358
self.is_form_encoded = is_form_encoded
357359

358-
359360
@setter
360361
def url(self, value):
361362
self.__dict__['url'] = value
362363
if value is not None:
363-
scheme, netloc, path, params, query, fragment = urlparse(value)
364+
scheme, netloc, path, query, fragment = urlsplit(value)
364365

365366
# Exclude default port numbers.
366367
if scheme == 'http' and netloc[-3:] == ':80':
@@ -371,7 +372,7 @@ def url(self, value):
371372
raise ValueError("Unsupported URL %s (%s)." % (value, scheme))
372373

373374
# Normalized URL excludes params, query, and fragment.
374-
self.normalized_url = urlunparse((scheme, netloc, path, None, None, None))
375+
self.normalized_url = urlunsplit((scheme, netloc, path, None, None))
375376
else:
376377
self.normalized_url = None
377378
self.__dict__['url'] = None
@@ -416,21 +417,26 @@ def to_postdata(self):
416417
def to_url(self):
417418
"""Serialize as a URL for a GET request."""
418419
base_url = urlparse(self.url)
419-
try:
420-
query = base_url.query
421-
except AttributeError: #pragma NO COVER
422-
# must be python <2.5
423-
query = base_url[4]
424-
query = parse_qs(to_utf8(query))
425-
for k, v in self.items():
426-
query.setdefault(to_utf8(k), []).append(to_utf8_optional_iterator(v))
427-
428-
scheme = to_utf8(base_url.scheme)
429-
netloc = to_utf8(base_url.netloc)
430-
path = to_utf8(base_url.path)
431-
params = to_utf8(base_url.params)
432-
fragment = to_utf8(base_url.fragment)
433-
420+
421+
if PY3:
422+
query = parse_qs(base_url.query)
423+
for k, v in self.items():
424+
query.setdefault(k, []).append(to_utf8_optional_iterator(v))
425+
scheme = base_url.scheme
426+
netloc = base_url.netloc
427+
path = base_url.path
428+
params = base_url.params
429+
fragment = base_url.fragment
430+
else:
431+
query = parse_qs(to_utf8(base_url.query))
432+
for k, v in self.items():
433+
query.setdefault(to_utf8(k), []).append(to_utf8_optional_iterator(v))
434+
scheme = to_utf8(base_url.scheme)
435+
netloc = to_utf8(base_url.netloc)
436+
path = to_utf8(base_url.path)
437+
params = to_utf8(base_url.params)
438+
fragment = to_utf8(base_url.fragment)
439+
434440
url = (scheme, netloc, path, params, urlencode(query, True), fragment)
435441
return urlunparse(url)
436442

oauth2/_compat.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ def u(x, encoding='ascii'):
3131
from urllib.parse import unquote
3232
from urllib.parse import unquote_to_bytes
3333
from urllib.parse import urlencode
34+
from urllib.parse import urlsplit
35+
from urllib.parse import urlunsplit
3436
from urllib.parse import urlparse
3537
from urllib.parse import urlunparse
3638
else: #pragma NO COVER Python2
@@ -39,6 +41,8 @@ def u(x, encoding='ascii'):
3941
from urllib import quote
4042
from urllib import unquote
4143
from urllib import urlencode
44+
from urlparse import urlsplit
45+
from urlparse import urlunsplit
4246
from urlparse import urlparse
4347
from urlparse import urlunparse
4448
unquote_to_bytes = unquote

tests/test_oauth.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -215,8 +215,7 @@ def test_get_callback_url(self):
215215
self.assertEqual(url, '%s%s' % (cb, verifier_str))
216216

217217
def test_to_string(self):
218-
string = 'oauth_token_secret=%s&oauth_token=%s' % (self.secret,
219-
self.key)
218+
string = 'oauth_token=%s&oauth_token_secret=%s' % (self.key, self.secret)
220219
self.assertEqual(self.token.to_string(), string)
221220

222221
self.token.set_callback('http://www.example.com/my-callback')
@@ -443,10 +442,10 @@ def test_to_url_nonascii(self):
443442
}
444443

445444
req = oauth.Request("GET", url, params)
446-
res = urlparse.urlparse(req.to_url())
445+
res = urlparse(req.to_url())
447446

448447
params['nonasciithing'] = params['nonasciithing'].encode('utf-8')
449-
exp = urlparse.urlparse("%s?%s" % (url, urllib.urlencode(params)))
448+
exp = urlparse("%s?%s" % (url, urlencode(params)))
450449

451450
self.assertEquals(exp.netloc, res.netloc)
452451
self.assertEquals(exp.path, res.path)
@@ -1016,8 +1015,7 @@ def test_sign_request(self):
10161015
params['oauth_token'] = tok.key
10171016
params['oauth_consumer_key'] = con.key
10181017
req = oauth.Request(method="GET", url=url, parameters=params)
1019-
1020-
# TODO: this changes to b input?
1018+
10211019
methods = {
10221020
b'DX01TdHws7OninCLK9VztNTH1M4=': oauth.SignatureMethod_HMAC_SHA1(),
10231021
b'con-test-secret&tok-test-secret': oauth.SignatureMethod_PLAINTEXT()

0 commit comments

Comments
 (0)