From 425455d9f0b754deb16dd398f6cbab1829d0ec46 Mon Sep 17 00:00:00 2001 From: Michael Abel Date: Mon, 20 Nov 2023 23:28:49 +0100 Subject: [PATCH 1/2] Add tests for ensure_ascii parameter --- acceptance/JSONLibrary.robot | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/acceptance/JSONLibrary.robot b/acceptance/JSONLibrary.robot index 6f27c60..824a326 100644 --- a/acceptance/JSONLibrary.robot +++ b/acceptance/JSONLibrary.robot @@ -82,6 +82,18 @@ TestConvertJSONToString ${json_str}= Convert Json To String ${json_obj_input} Should Be String ${json_str} +TestEnsureAsciiDefault + ${data} = Set Variable "{'test':'ueber'}" + ${json} = Convert String To Json ${data} + ${string} = Convert Json To String ${json} + Should Be Equal ${string} ${data} + +TestEnsureAsciiFalse + ${data} = Set Variable "{'test':'über'}" + ${json} = Convert String To Json ${data} + ${string} = Convert Json To String ${json} ensure_ascii=False + Should Be Equal ${string} ${data} + TestDumpJSONToFile [Documentation] Dumps Json to file Dump Json to file ${TEMPDIR}/sample_dump.json ${json_obj_input} From 95248ec35ee8bb5ba7e8167b316251ce6b633079 Mon Sep 17 00:00:00 2001 From: Michael Abel Date: Mon, 20 Nov 2023 23:29:15 +0100 Subject: [PATCH 2/2] Forward ensure_ascii parameter to json.dumps --- JSONLibrary/jsonlibrary.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/JSONLibrary/jsonlibrary.py b/JSONLibrary/jsonlibrary.py index a4a7d4c..17b7433 100644 --- a/JSONLibrary/jsonlibrary.py +++ b/JSONLibrary/jsonlibrary.py @@ -202,20 +202,22 @@ def delete_object_from_json(self, json_object, json_path): return json_object_cpy @staticmethod - def convert_json_to_string(json_object, indent=None): + def convert_json_to_string(json_object, indent=None, ensure_ascii=True): """Convert JSON object to string Arguments: - json_object: json as a dictionary object. - indent: indent level for pretty-printing, see indent argument of python's [https://docs.python.org/3/library/json.html#json.dump|json.dump()] for details + - ensure_ascii: Make sure there is only ascii. Escape all non-ascii characters. Return new json_string Examples: | ${json_str}= | Convert JSON To String | ${json_obj} | | ${json_str}= | Convert JSON To String | ${json_obj} | indent=${4} | + | ${json_str}= | Convert JSON To String | ${json_obj} | indent=${4} | ensure_ascii=False | """ - return json.dumps(json_object, indent=indent) + return json.dumps(json_object, indent=indent, ensure_ascii=ensure_ascii) @staticmethod def convert_string_to_json(json_string):