################################################################################################### # Deployment specific global definitions - executed after startup.py ################################################################################################### #Uncomment this line to create the simulated devices needed to the tutorial scripts. #run("tutorial/devices") # The code below is necessary to run the Testing List plug-in: global print_log, sendFeedback, sys, inspect, os, traceback import sys, inspect, os, traceback class TestingTool: """ Common tools for running the test """ def __init__(self, testName, testPath, deviceName, testParams): """ Init class with test data """ self.deviceName = deviceName self.testName = testName self.testPath = testPath self.testParams = testParams a = 0x69 print a def getParam(self, paramName): """ get specific test parameter paramName = the name of the parameter for which the value must be read """ try: return self.testParams[paramName]["value"] except: self.log('Could not retrieve testing parameter ' + paramName + ' - Details: ' + traceback.format_exc()) return None def getName(self): """ get test name """ return self.testName def getPlotName(self): """ get test plot name """ return self.deviceName + ' - ' + self.testName def getDeviceName(self): """ get device name """ return self.deviceName def getPath(self): """ get test path """ return self.testPath def log(self, text): """ Print/log information text = the string to be printed/logged """ import time time.ctime() now = time.strftime('%Y.%m.%d %H:%M:%S') logText = self.deviceName + ' - ' + self.testName + ': ' + str(text) print now + ' ' + logText try: log(logText) except: #cannot write log. maybe busy? Wait and retry time.sleep(1) try: log(logText) except: #cannot write log print now + ' ' + self.deviceName + ' - ' + self.testName + ': ' + 'cannot write Log in Data' def printParams(self): """ Print/log the pshell parameters params = the JSON object with the parameters passed by pshell """ columnsFormat = '{0:20} {1:>7} {2}' self.log(columnsFormat.format("Parameter", "Value", "Description")) for key in self.testParams.keys(): self.log(columnsFormat.format(key, self.testParams[key]['value'], self.testParams[key]['description'])) def sendFeedback(self, returnString, testPassed): """ Prepare and send feedback to calling tool returnString = the string containing info on the test result testPassed = true if the test was successful, false if test had a problem """ self.log('End of test. Result:') #self.log('Device: ' + self.deviceName) #self.log('Test name: ' + self.testName) #self.log('Test path: ' + self.testPath) if testPassed: self.log('**** TEST PASSED ****') else: self.log('**** TEST FAILED ****') self.log('Return message: ' + returnString) ret = [self.testPath, self.deviceName, returnString, testPassed] set_return( ret)