From 671cdc4d0a3eabda9a7700cd517a1a2a9e12b3e0 Mon Sep 17 00:00:00 2001 From: mas2hc Date: Thu, 27 Apr 2023 16:07:29 +0700 Subject: [PATCH] Fixed the issue of test case tsm 0201 --- JsonPreprocessor/CJsonPreprocessor.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/JsonPreprocessor/CJsonPreprocessor.py b/JsonPreprocessor/CJsonPreprocessor.py index aa205828..cb55894b 100644 --- a/JsonPreprocessor/CJsonPreprocessor.py +++ b/JsonPreprocessor/CJsonPreprocessor.py @@ -279,10 +279,21 @@ def __processImportFiles(self, input_data : dict) -> dict: raise Exception(f"Cyclic imported json file '{abs_path_file}'!") oJsonImport = self.jsonLoad(abs_path_file, masterFile=False) + tmpOutdict = copy.deepcopy(out_dict) + for k1, v1 in tmpOutdict.items(): + for k2, v2 in oJsonImport.items(): + if k2 == k1: + del out_dict[k1] + del tmpOutdict out_dict.update(oJsonImport) self.recursive_level = self.recursive_level - 1 # descrease recursive level else: + tmpOutdict = copy.deepcopy(out_dict) + for k1, v1 in tmpOutdict.items(): + if k1 == key: + del out_dict[k1] + del tmpOutdict out_dict[key] = value return out_dict @@ -471,6 +482,15 @@ def __jsonUpdated(k, v, oJson, bNested, keyNested = ''): exec(sExec, globals()) except: raise Exception(f"Could not set variable '{k}' with value '{v}'!") + + if isinstance(v, str): + sExec = "oJson['" + k.split('[', 1)[0] + "'][" + k.split('[', 1)[1] + " = \"" + v + "\"" + else: + sExec = "oJson['" + k.split('[', 1)[0] + "'][" + k.split('[', 1)[1] + " = " + str(v) + try: + exec(sExec, globals()) + except: + pass else: oJson[k] = v