summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Utz <cutz@users.noreply.github.com>2018-08-12 15:44:38 -0500
committerPieter Ennes <pieter@ennes.nl>2018-08-12 21:44:38 +0100
commitd5d843de71e2ddd6da913971f42beec890f5c3b7 (patch)
tree670dd63dab2f80ac37a31b432de5d3ee7db4eeab
parent371029906aa6ccc9943120e096a7bbdd0ef6945d (diff)
downloadoauthlib-d5d843de71e2ddd6da913971f42beec890f5c3b7.tar.gz
$ and ' are allowed to be unencoded in query strings (#564)
-rw-r--r--oauthlib/common.py2
-rw-r--r--tests/test_common.py2
2 files changed, 3 insertions, 1 deletions
diff --git a/oauthlib/common.py b/oauthlib/common.py
index f25656f..c1180e6 100644
--- a/oauthlib/common.py
+++ b/oauthlib/common.py
@@ -114,7 +114,7 @@ def decode_params_utf8(params):
return decoded
-urlencoded = set(always_safe) | set('=&;:%+~,*@!()/?')
+urlencoded = set(always_safe) | set('=&;:%+~,*@!()/?\'$')
def urldecode(query):
diff --git a/tests/test_common.py b/tests/test_common.py
index b0ea20d..fb4bd5b 100644
--- a/tests/test_common.py
+++ b/tests/test_common.py
@@ -39,6 +39,8 @@ class EncodingTest(TestCase):
self.assertItemsEqual(urldecode('foo=bar@spam'), [('foo', 'bar@spam')])
self.assertItemsEqual(urldecode('foo=bar/baz'), [('foo', 'bar/baz')])
self.assertItemsEqual(urldecode('foo=bar?baz'), [('foo', 'bar?baz')])
+ self.assertItemsEqual(urldecode('foo=bar\'s'), [('foo', 'bar\'s')])
+ self.assertItemsEqual(urldecode('foo=$'), [('foo', '$')])
self.assertRaises(ValueError, urldecode, 'foo bar')
self.assertRaises(ValueError, urldecode, '%R')
self.assertRaises(ValueError, urldecode, '%RA')