File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ 1496.misc.rst
Original file line number Diff line number Diff line change @@ -457,6 +457,14 @@ def test_unquote_plus_to_space_unsafe(unquoter: type[_Unquoter]) -> None:
457457 assert unquoter (unsafe = "+" , qs = True )("a+b" ) == "a+b"
458458
459459
460+ def test_unquote_multiple_unsafe (unquoter : type [_Unquoter ]) -> None :
461+ assert unquoter (unsafe = "!@#$" )("a!@#$b" ) == "a%21%40%23%24b"
462+
463+
464+ def test_unquote_explict_empty_unsafe (unquoter : type [_Unquoter ]) -> None :
465+ assert unquoter (unsafe = "" )("a!@#$b" ) == "a!@#$b"
466+
467+
460468def test_quote_qs_with_colon (quoter : type [_Quoter ]) -> None :
461469 s = quoter (safe = "=+&?/:@" , qs = True )("next=http%3A//example.com/" )
462470 assert s == "next=http://example.com/"
Original file line number Diff line number Diff line change @@ -310,6 +310,7 @@ cdef class _Unquoter:
310310 cdef str _ignore
311311 cdef bint _has_ignore
312312 cdef str _unsafe
313+ cdef bytes _unsafe_bytes
313314 cdef Py_ssize_t _unsafe_bytes_len
314315 cdef const unsigned char * _unsafe_bytes_char
315316 cdef bint _qs
@@ -322,9 +323,9 @@ cdef class _Unquoter:
322323 self ._has_ignore = bool (self ._ignore)
323324 self ._unsafe = unsafe
324325 # unsafe may only be extended ascii characters (0-255)
325- unsafe_bytes = self ._unsafe.encode(' ascii' )
326- self ._unsafe_bytes_len = len (unsafe_bytes )
327- self ._unsafe_bytes_char = unsafe_bytes
326+ self ._unsafe_bytes = self ._unsafe.encode(' ascii' )
327+ self ._unsafe_bytes_len = len (self ._unsafe_bytes )
328+ self ._unsafe_bytes_char = self ._unsafe_bytes
328329 self ._qs = qs
329330 self ._plus = plus
330331 self ._quoter = _Quoter()
You can’t perform that action at this time.
0 commit comments