#!/usr/bin/python # program to execute programs for a testcases or for a testsuite # PARAM from INPUT: --granularity --application --environment --testcase/testsuite # main functions # + input_param() : cache-actjob --> user-input --> local-param # + start_job() : local-param --> cache-actjob --> start-param # --------------------------------------------------- """ """ import os.path import json import basic.program import basic.constants as B import utils.file_tool tempJob = {} PROGRAM_NAME = "unit" JSON_FILE = "actualJob.json" JOB_NR = { "init_testsuite": { "jobnr": "0" }, "execute_testsuite": { "jobnr": "1"}, "collect_testsuite": { "jobnr": "2"}, "compare_testsuite": { "jobnr": "3"}, "finish_testsuite": { "jobnr": "4"}, "init_testcase": { "jobnr": "5" }, "execute_testcase": { "jobnr": "6" }, "collect_testcase": { "jobnr": "7" }, "compare_testcase": { "jobnr": "8" }, "check_environment": { "jobnr": "9" }, "test_executer": { "jobnr": "10"}, } JOB_LIST = [ "init_testsuite", "execute_testsuite", "collect_testsuite", "compare_testsuite", "finish_testsuite", "init_testcase", "execute_testcase", "collect_testcase", "compare_testcase", "check_environment", "test_executer" ] appList = [] envList = ["ENV01"] testList = {"TEST": [ "TC0001", "TST001" ]} def readContext(job): for k in job.conf.confs["applications"]: appList.append(k) def restartActualProcess(job): """ check if an actual process is open :return: """ path = os.path.join(job.conf.confs[B.SUBJECT_PATH][B.ATTR_PATH_DEBUG], JSON_FILE) if os.path.exists(path): actProc = utils.file_tool.readFileDict(job, path) jobNr = int(JOB_NR[actProc["job"]]["jobnr"]) question = "Prozess " choiceList = "" if jobNr < 8 and jobNr != 4: question += "F_ortsetzen | " choiceList += "f | " question += "W_iederholen | N_euen Prozess | X_exit" choiceList = "w | n | x ?" print("+-----------------------------------------------") for k in actProc: print('| {:6s} : {:60s}'.format(k, actProc[k])) print("+-----------------------------------------------") print(question) choice = input("Auswahl "+choiceList) choiceList.replace(" | ","") if choice.lower() not in choiceList[:-1]: print("FEHLER : falsche Auswahl") elif choice.lower() == "x": job.stopJob(0) elif choice.lower() == "w": startProcess(job, actProc) elif choice.lower() == "f": actProc["job"] = JOB_NR[int(jobNr)+1] startProcess(job, actProc) elif choice.lower() == "n": createProcess(job) else: print("unbekannte Situation") else: createProcess(job) def createProcess(job): process = {} index = 0 print("create new process") process["app"] = getChoice(job, appList, "Anwendung") # if len(envList) == 1: process["env"] = envList[0] else: process["env"] = getChoice(job, envList, "Umgebung") # process["tc"] = getChoice(job, testList[process["app"]], "Testfall") print(str(process)) def getChoice(job, choiselist, description): index = 0 print("+------------- "+description+" ----------") print('| {:2d} : {:60s}'.format(0, "exit")) for k in choiselist: index += 1 print('| {:2d} : {:60s}'.format(index, k)) print("+-----------------------------------------------") choice = input("Auswahl 1-" + str(index) + ": ") if not choice.isnumeric(): print("FEHLER Fehleingabe "+choice) getChoice(job, choiselist, description) elif int(choice) < 1: exit(0) elif int(choice) > index: print("FEHLER Fehleingabe "+choice) getChoice(job, choiselist, description) else: return choiselist[int(choice) - 1] def startProcess(job, process): print(str(process)) if __name__ == '__main__': job = basic.program.Job(PROGRAM_NAME) readContext(job) restartActualProcess(job)