summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOmer Katz <omer.drow@gmail.com>2016-03-14 11:48:03 +0200
committerOmer Katz <omer.drow@gmail.com>2016-03-14 11:48:03 +0200
commita7483b73dac3ba00e90ef58a72bdefd0bec27ad9 (patch)
treed25e4a96dab0853c3bb0c42639dd4a5cae8d8a6f
parentcc3b3abfcd3a2509031b9f8bf92e8bfe6367a9aa (diff)
parente59f04bf577f0faa3e5fe2de177d65d094592b55 (diff)
downloadoauthlib-a7483b73dac3ba00e90ef58a72bdefd0bec27ad9.tar.gz
Merge pull request #407 from eofs/feature/rfc-3986-section-3.4
Allow `/` and `?` characters in query string (RFC 3986 section 3.4)
-rw-r--r--oauthlib/common.py2
-rw-r--r--tests/test_common.py3
2 files changed, 3 insertions, 2 deletions
diff --git a/oauthlib/common.py b/oauthlib/common.py
index db07f08..e0e80c8 100644
--- a/oauthlib/common.py
+++ b/oauthlib/common.py
@@ -109,7 +109,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 22729a0..fb28fa4 100644
--- a/tests/test_common.py
+++ b/tests/test_common.py
@@ -43,8 +43,9 @@ class EncodingTest(TestCase):
self.assertItemsEqual(urldecode('foo=(1,2,3)'), [('foo', '(1,2,3)')])
self.assertItemsEqual(urldecode('foo=bar.*'), [('foo', 'bar.*')])
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.assertRaises(ValueError, urldecode, 'foo bar')
- self.assertRaises(ValueError, urldecode, '?')
self.assertRaises(ValueError, urldecode, '%R')
self.assertRaises(ValueError, urldecode, '%RA')
self.assertRaises(ValueError, urldecode, '%AR')