From 3760b63d445206ab28266dc6967604cff928a8c5 Mon Sep 17 00:00:00 2001 From: selfisekai Date: Sat, 5 Sep 2020 22:56:38 +0200 Subject: [PATCH] fix dump_qs for dicts nested inside lists --- librefi/utils.py | 5 +++-- tests/querystring.py | 8 +++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/librefi/utils.py b/librefi/utils.py index 2e1c043..e4b8f0d 100644 --- a/librefi/utils.py +++ b/librefi/utils.py @@ -37,9 +37,10 @@ def dump_qs(obj): if isinstance(old_qs_element[1][subkey], (dict, list)): not_flat = True elif isinstance(old_qs_element[1], (list)): - for element in old_qs_element[1]: + for index in range(len(old_qs_element[1])): + element = old_qs_element[1][index] qs.append( - (old_qs_element[0] + "[]", element)) + (old_qs_element[0] + "[" + str(index) + "]", element)) if isinstance(element, (dict, list)): not_flat = True if not_flat: diff --git a/tests/querystring.py b/tests/querystring.py index 0ee62d8..c43d0f6 100644 --- a/tests/querystring.py +++ b/tests/querystring.py @@ -3,15 +3,17 @@ from hashlib import sha512 def test_dump(): - result = dump_qs({ + obj = { "key": "value", "three": 3, "two_and_half": 2.5, "ziobro": [ {"kurwo": "jebana"}, {"przestań mi": ["kurwa", "rodzinę prześladować"]}], - }) + } + result = dump_qs(obj) + assert isinstance(result, str) assert sha512(result.encode("utf-8")).hexdigest( # flake8: noqa: E501 - ) == '0d0d0598ea18ed0b28b1b4210ac06b742a1cf9a25cb5292db57b9c0cdbcb73bc65d19fa2b7df30dc8281796e3865412760776339a253c10b3025f4b32b187476' + ) == "80cb0feb585e8a5969598797b74c6f7f2f314ee97dfd2d6f4aaf431b800f6c7a1dfe77efd550a1009d41ef2886b21b87ce1d9e4f11444af554a916987344aee1" pass