# # --------------------------------------------------------------------- """ the issue of this tool is to transform extern data to the internal structure and the internal structure into extern data - i.e. mostly test-results. * * * * * * * * the testdata have several elements * parameter (-td --tdata) : to identify which testdata should be loaded * source (flaskdb: dbname / dir: filename) : always structured in a table (easy to specify) with columns * node : where the rows are * action : what should be done - default insert + fields : dates in relation of a reference 0: columns.append(fields[i]) j = j + 1 cnt = j job.debug(verify, str(state) + " " + str(cnt) + " cols " + str(columns)) elif state >= 2 and len(testline) > 2: if state == 2: nodes = fields[0].split(":") job.debug(verify, str(state) + " nodes " + str(nodes)) state = 3 row = {} for i in range(2, cnt-1): row[columns[i-2]] = fields[i] job.debug(verify, str(state) + " row " + str(row)) data.append(row) elif state == 3: job.debug(verify, "structure " + str(state) + ": " + str(nodes)) output = setSubnode(0, nodes, data, output) data = [] state = 0 print(str(output)) print(str(output)) output = setSubnode(0, nodes, data, output) print(str(output)) file.close() return output def setSubnode(i, nodes, data, tree): print("setSubnode " + str(i) + ": " + ": " + str(tree)) if i >= len(nodes): print("setSubnode a " + str(i)) tree["data"] = data elif tree is not None and nodes[i] in tree.keys(): print("setSubnode b " + str(i)) tree[nodes[i]] = setSubnode(i+1, nodes, data, tree[nodes[i]]) else: print("setSubnode c " + str(i)) tree[nodes[i]] = setSubnode((i + 1), nodes, data, {}) return tree def getDataStructure(comp): # gets data-structure from the vml in the component-folder job = basic.program.Job.getInstance() verify = -1+job.getDebugLevel("tdata_tool") job.debug(verify, "getDataStructure " + comp) def normalizeDataRow(dstruct, xpathtupel, row, referencedate): # normalize data of the row if necessary # raw-value is saved as new field with _raw as suffix job = basic.program.Job.getInstance() verify = -1+job.getDebugLevel("tdata_tool") job.debug(verify, "calcDataRow " + row) def writeDataTable(teststatus, tdata, comp): """ writes the testdata into a csv-file for documentation of the test-run :param teststatus: :param tdata: :param comp: if specific else None :return: """ job = basic.program.Job.getInstance() verify = -1+job.getDebugLevel("tdata_tool") job.debug(verify, "writeDataTable " + str(comp))