Skip to content

Commit

Permalink
Fix #2106
Browse files Browse the repository at this point in the history
  • Loading branch information
artcg committed Apr 12, 2021
1 parent 8d86c3c commit dabd6e2
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 6 deletions.
18 changes: 12 additions & 6 deletions sanic/request.py
Expand Up @@ -265,9 +265,12 @@ def get_args(
:type errors: str
:return: RequestParameters
"""
if not self.parsed_args[
(keep_blank_values, strict_parsing, encoding, errors)
]:
if (
keep_blank_values,
strict_parsing,
encoding,
errors,
) not in self.parsed_args:
if self.query_string:
self.parsed_args[
(keep_blank_values, strict_parsing, encoding, errors)
Expand Down Expand Up @@ -321,9 +324,12 @@ def get_query_args(
:type errors: str
:return: list
"""
if not self.parsed_not_grouped_args[
(keep_blank_values, strict_parsing, encoding, errors)
]:
if (
keep_blank_values,
strict_parsing,
encoding,
errors,
) not in self.parsed_not_grouped_args:
if self.query_string:
self.parsed_not_grouped_args[
(keep_blank_values, strict_parsing, encoding, errors)
Expand Down
11 changes: 11 additions & 0 deletions tests/test_requests.py
Expand Up @@ -289,6 +289,17 @@ async def handler(request):
assert request.args.getlist("test1") == ["1"]
assert request.args.get("test3", default="My value") == "My value"

def test_popped_stays_popped(app):
@app.route("/")
async def handler(request):
return text("OK")

request, response = app.test_client.get(
"/", params=[("test1", "1")]
)

assert request.args.pop("test1") == ["1"]
assert "test1" not in request.args

@pytest.mark.asyncio
async def test_query_string_asgi(app):
Expand Down

0 comments on commit dabd6e2

Please sign in to comment.