⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testpython.py

📁 Software Testing Automation Framework (STAF)的开发代码
💻 PY
📖 第 1 页 / 共 2 页
字号:
############################################################################## Software Testing Automation Framework (STAF)                              ## (C) Copyright IBM Corp. 2001, 2005                                        ##                                                                           ## This software is licensed under the Common Public License (CPL) V1.0.     ############################################################################### This file contains tests for the STAF Python supportfrom PySTAF import *from PySTAFMon import *from PySTAFLog import *import stringimport systry:    handle = STAFHandle("Lang/Python/Test/Basic")except STAFException, e:    print "Error registering with STAF, RC: %d" % e.rc    sys.exit(e.rc)print "Using handle %d" % handle.handle######################################## First test some basic functionality ########################################print "Testing basic functionality"result = handle.submit("local", "ping", "ping")if ((result.rc != STAFResult.Ok) or (result.result != "PONG")):    print "Error on ping request."    print "Expected RC: 0, Result: PONG"    print "Received RC: %d, Result: %s" % (result.rc, result.result)    sys.exit(1)result = handle.submit("local", "var", "resolve string {STAF/Config/MachineNickname}")if (result.rc != STAFResult.Ok):    print "Error resolving machine nickname, RC: %d, Result: %s" % \          (result.rc, result.result)    sys.exit(result.rc)self = result.result################################################ Next, lets test the monitor service wrapper ################################################print "Testing Monitor service functions"# Log the messagemonitor = STAFMonitor(handle)monitorMessage = "Hello World"result = monitor.log(monitorMessage)if (result.rc != STAFResult.Ok):    print "Error on STAFMonitorDoLog, RC: %d, Result: %s" % \          (result.rc, result.result)    sys.exit(result.rc)# Try to retrieve itrequest = "query machine %s handle %d" % (self, handle.handle)result = handle.submit("local", "monitor", request)if (result.rc != STAFResult.Ok):    print "Error querying monitor info, RC: %d, Result: %s" % \          (result.rc, result.result)    sys.exit(result.rc)# Make sure we got back the correct messagecontext = unmarshall(result.result)monitorMap = context.getRootObject()if monitorMap['message'] != monitorMessage:    print "Wrong output for MONITOR QUERY request"    print "Expected to find:"    print "{"    print "  Date-Time: <Timestamp>"    print "  Message  : %s" % (monitorMessage)    print "}"    print "Found:\n%s" % context    sys.exit(1)############################################### Finally, lets test the log service wrapper ###############################################print "Testing Log service functions"logName = "PythonTest"# Setup logginglog = STAFLog(handle, STAFLog.Handle, logName,              [ STAFLog.Fatal, STAFLog.Error, STAFLog.Warning, STAFLog.Info ])# Log the messagelogMessage = "A log message"result = log.log(STAFLog.Info, logMessage)if (result.rc != STAFResult.Ok):    print "Error on STAFLog.log(), RC: %d, Result: %s" % \          (result.rc, result.result)    sys.exit(result.rc)# Try to retrieve itrequest = "query machine %s handle %d logname %s" % \          (self, handle.handle, logName)result = handle.submit("local", "log", request)if (result.rc != STAFResult.Ok):    print "Error on STAF LOG Service QUERY, RC: %d, Result: %s" % \          (result.rc, result.result)    sys.exit(result.rc)# Make sure we got back the correct messagecontext = unmarshall(result.result)logRecordList = context.getRootObject()if (len(logRecordList) > 0 and    logRecordList[len(logRecordList) - 1]['level'] == STAFLog.Info and    logRecordList[len(logRecordList) - 1]['message'] == logMessage):    logRecord = logRecordList[len(logRecordList) - 1]else:    print "Wrong output for log query request"    print "Expected to find one record with level: '%s' and message: '%s'" % \          (STAFLog.Info, logMessage)    print "Found:\n'%s'" % context    sys.exit(1)# Try to retrieve it from monitorrequest = "query machine %s handle %d" % (self, handle.handle)result = handle.submit("local", "monitor", request)if (result.rc != STAFResult.Ok):    print "Error on querying monitor info, RC: %d, Result: %s" % \          (result.rc, result.result)    sys.exit(result.rc)# Make sure we got back the correct message from monitorcontext = unmarshall(result.result)monitorMap = context.getRootObject()if monitorMap['message'] != '%s:%s' % (STAFLog.Info, logMessage):    print "Wrong output for MONITOR QUERY request"    print "Expected to find:"    print "{"    print "  Date-Time: <Timestamp>"    print "  Message  : %s:%s" % (STAFLog.Info, logMessage)    print "}"    print "Found:\n%s" % context    sys.exit(1)# Delete the log filerequest = "delete machine %s handle %d logname %s confirm" % \          (self, handle.handle, logName)result = handle.submit("local", "log", request)if (result.rc != STAFResult.Ok):    print "Error deleting log file, RC: %s, Result: %s" % \          (result.rc, result.result)    sys.exit(1)# Log the message so that Monitor shouldn't get itresult = log.log(STAFLog.Status, logMessage)if (result.rc != STAFResult.Ok):    print "Error on STAFLog.log(), RC: %d, Result: %s" % \          (result.rc, result.result)    sys.exit(result.rc)# Try to retrieve itrequest = "query machine %s handle %d logname %s" % \          (self, handle.handle, logName)result = handle.submit("local", "log", request)if (result.rc != STAFResult.Ok):    print "Error on STAF LOG Service QUERY, RC: %d, Result: %s" % \          (result.rc, result.result)    sys.exit(result.rc)# Make sure we got back the correct messagecontext = unmarshall(result.result)logRecordList = context.getRootObject()if (len(logRecordList) == 1 and    logRecordList[0]['level'] == STAFLog.Status and    logRecordList[0]['message'] == logMessage):    logRecord = logRecordList[0]else:    print "Wrong output for log query request"    print "Expected to find one record with level: '%s' and message: '%s'" % \          (STAFLog.Status, logMessage)    print "Found '%s'" % context    sys.exit(1)# Try to retrieve it from monitorrequest = "query machine %s handle %d" % (self, handle.handle)result = handle.submit("local", "monitor", request)if (result.rc != STAFResult.Ok):    print "Error on querying monitor info, RC: %d, Result: %s" % \          (result.rc, result.result)    sys.exit(result.rc)# Make sure we got back the correct (old) message from monitorcontext = unmarshall(result.result)monitorMap = context.getRootObject()if monitorMap['message'] != '%s:%s' % (STAFLog.Info, logMessage):    print "Wrong output for MONITOR QUERY request"    print "Expected to find:"    print "{"    print "  Date-Time: <Timestamp>"    print "  Message  : %s:%s" % (STAFLog.Info, logMessage)    print "}"    print "Found:\n%s" % context    sys.exit(1)# Delete the log filerequest = "delete machine %s handle %d logname %s confirm" % \          (self, handle.handle, logName)result = handle.submit("local", "log", request)if (result.rc != STAFResult.Ok):    print "Error deleting log file, RC: %s, Result: %s" % \          (result.rc, result.result)    sys.exit(1)######################################### Next, test the marshall function     #########################################print "Testing marshall function"myTestMap = {'name': 'TestA', 'exec': '/tests/TestA.py', 'testType': 'FVT', 'outputs': ['TestA.out', 'TestA.err']}marshalledResult = marshall(myTestMap)expectedResult = (    "@SDT/{:138::7:outputs@SDT/[2:38:@SDT/$S:9:TestA.out" +    "@SDT/$S:9:TestA.err:8:testType@SDT/$S:3:FVT:4:name" +    "@SDT/$S:5:TestA:4:exec@SDT/$S:15:/tests/TestA.py")if marshalledResult != expectedResult:    print "Wrong output for marshall function"    print "Expected to find:\n%s" % (expectedResult)    print "Found:\n%s" % (marshalledResult)    sys.exit(1)########################################## Next, test the STAFMapClassDefinition ##########################################print "Testing STAFMapClassDefinition class"mapClassDefName = 'Test/MyMap'myMapClassDef = STAFMapClassDefinition(mapClassDefName)myMapClassDef.addKey('name', 'Name')myMapClassDef.addKey('exec', 'Executable')myMapClassDef.addKey('testType', 'Test Type')myMapClassDef.setKeyProperty('testType', 'display-short-name', 'test')myMapClassDef.addKey('outputs', 'Outputs')expectedKeyMap = [  {'display-name': 'Name', 'key': 'name'},  {'display-name': 'Executable', 'key': 'exec'},  {'display-name': 'Test Type', 'key': 'testType', 'display-short-name': 'test'},  {'display-name': 'Outputs', 'key': 'outputs'}]if myMapClassDef.keys() != expectedKeyMap:    print "Wrong keys for myMapClassDef"    print "Expected:\n%s" % (expectedKeyMap)    print "Found:\n%s" % (myMapClassDef.keys())    sys.exit(1)if myMapClassDef.name() != mapClassDefName:    print "Wrong name for myMapClassDef"    print "Expected: %s" % (myClassDefName)    print "Found   : %s" % (myMapClassDef.name())    sys.exit(1)expectedMapClass = {  'keys': [    {'display-name': 'Name', 'key': 'name'},    {'display-name': 'Executable', 'key': 'exec'},    {'display-name': 'Test Type', 'key': 'testType', 'display-short-name': 'test'},    {'display-name': 'Outputs', 'key': 'outputs'}  ],  'name': 'Test/MyMap'}if myMapClassDef.getMapClassDefinitionObject() != expectedMapClass:    print "getMapClassDefinitionObject() returned wrong object"    print "Expected:\n%s" % (expectedMapClass)    print "Found:\n%s" % (myMapClassDef.getMapClassDefinitionObject())    sys.exit(1)myMapClass = myMapClassDef.createInstance()########################################## Next, test the STAFMarshallingContext ##########################################print "Testing STAFMarshallingContext class"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -