#!/usr/bin/python # -*- coding: utf-8 -*- # --------------------------------------------------------------------------------------------------------- # Author : Ulrich Carmesin # Source : gitea.ucarmesin.de # --------------------------------------------------------------------------------------------------------- """ this module implements the functionality of a test-step which is defined in the test-specification and is executed by any executer there are 2 kinds of test-step a) execute specific component in the job b) execute specific test-entity in the test-suite-execution """ import basic.constants as B import utils.data_const as D LIST_ARGS = [ "start", # for starting the specified main-program "fct" # for calling the specified component-function ] class Step: comp = "" refLine = "" # in a: references the data-line(s) to be executed execStep = "" # in a,b: executes only if the step is set in the job args = {} """ the class contains each attribute of a test-step """ def __init__(self): self.comp = "" self.refLine = "" self.execStep = "" self.args = {} def parseOldStep(job, fields): step = {} step[B.DATA_NODE_COMP] = fields[D.STEP_COMP_I] step[B.ATTR_EXEC_REF] = fields[D.STEP_EXECNR_I] step[B.ATTR_DATA_REF] = fields[D.STEP_REFNR_I] step[B.ATTR_STEP_ARGS] = {} if D.STEP_ARGS_I == D.STEP_LIST_I: args = "" for i in range(D.STEP_ARGS_I, len(fields)): if len(fields[i]) < 1: continue if fields[i][0:1] == "#": continue args += "," + fields[i] args = args[1:] else: args = fields[D.STEP_ARGS_I] a = args.split(",") for arg in a: print("arg " + arg) b = arg.split(":") if len(b) < 2: raise Exception(D.EXCP_MALFORMAT + "" + l) step[B.ATTR_STEP_ARGS][b[0]] = b[1] # data[B.DATA_NODE_STEPS].append(step) return step def parseStep(job, fields): step = Step step.comp = fields[D.STEP_COMP_I] step.execStep = fields[D.STEP_EXECNR_I] step.refLine = fields[D.STEP_REFNR_I] if D.STEP_ARGS_I == D.STEP_LIST_I: args = "" for i in range(D.STEP_ARGS_I, len(fields)): if len(fields[i]) < 1: continue if fields[i][0:1] == "#": continue args += "," + fields[i] args = args[1:] else: args = fields[D.STEP_ARGS_I] a = args.split(",") for arg in a: print("arg " + arg) b = arg.split(":") if len(b) < 2: raise Exception(D.EXCP_MALFORMAT + "" + str(fields)) step.args[b[0]] = b[1] if b[0] in LIST_ARGS: setattr(step, b[0], b[1]) # data[B.DATA_NODE_STEPS].append(step) return step