Skip to content

Commit aa041c0

Browse files
committed
chore: added a test covering empty param value
1 parent 72e1d4d commit aa041c0

1 file changed

Lines changed: 26 additions & 0 deletions

File tree

tests/test_views.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,3 +256,29 @@ def get_proxy_request_headers(self, request):
256256
preload_content=False,
257257
decode_content=False,
258258
headers=custom_headers)
259+
260+
def test_raw_query_string_is_preserved_for_flag_params(self):
261+
"""
262+
Regression test: preserve "flag" params (no '=') when proxying.
263+
264+
Example: `...?. . .&c` must NOT become `...&c=`.
265+
"""
266+
class CustomProxyView(ProxyView):
267+
upstream = 'http://example.com'
268+
269+
raw_qs = 'q=1&a=2&c'
270+
271+
# Important: set QUERY_STRING explicitly so Django keeps it in request.META
272+
request = self.factory.get('/some/path', QUERY_STRING=raw_qs)
273+
CustomProxyView.as_view()(request, path)
274+
275+
url = 'http://example.com/' + path + '?' + raw_qs
276+
headers = {u'Cookie': u''}
277+
self.urlopen.assert_called_with('GET',
278+
url,
279+
body=b'',
280+
redirect=False,
281+
retries=None,
282+
preload_content=False,
283+
decode_content=False,
284+
headers=headers)

0 commit comments

Comments
 (0)