fix dump_qs for dicts nested inside lists

This commit is contained in:
selfisekai 2020-09-05 22:56:38 +02:00
parent 3331142797
commit 3760b63d44
2 changed files with 8 additions and 5 deletions

View file

@ -37,9 +37,10 @@ def dump_qs(obj):
if isinstance(old_qs_element[1][subkey], (dict, list)): if isinstance(old_qs_element[1][subkey], (dict, list)):
not_flat = True not_flat = True
elif isinstance(old_qs_element[1], (list)): 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( qs.append(
(old_qs_element[0] + "[]", element)) (old_qs_element[0] + "[" + str(index) + "]", element))
if isinstance(element, (dict, list)): if isinstance(element, (dict, list)):
not_flat = True not_flat = True
if not_flat: if not_flat:

View file

@ -3,15 +3,17 @@ from hashlib import sha512
def test_dump(): def test_dump():
result = dump_qs({ obj = {
"key": "value", "key": "value",
"three": 3, "three": 3,
"two_and_half": 2.5, "two_and_half": 2.5,
"ziobro": [ "ziobro": [
{"kurwo": "jebana"}, {"kurwo": "jebana"},
{"przestań mi": ["kurwa", "rodzinę prześladować"]}], {"przestań mi": ["kurwa", "rodzinę prześladować"]}],
}) }
result = dump_qs(obj)
assert isinstance(result, str)
assert sha512(result.encode("utf-8")).hexdigest( assert sha512(result.encode("utf-8")).hexdigest(
# flake8: noqa: E501 # flake8: noqa: E501
) == '0d0d0598ea18ed0b28b1b4210ac06b742a1cf9a25cb5292db57b9c0cdbcb73bc65d19fa2b7df30dc8281796e3865412760776339a253c10b3025f4b32b187476' ) == "80cb0feb585e8a5969598797b74c6f7f2f314ee97dfd2d6f4aaf431b800f6c7a1dfe77efd550a1009d41ef2886b21b87ce1d9e4f11444af554a916987344aee1"
pass pass