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

📄 testpython.py

📁 Software Testing Automation Framework (STAF)的开发代码
💻 PY
📖 第 1 页 / 共 2 页
字号:
mc = STAFMarshallingContext()mc.setMapClassDefinition(myMapClassDef)theMapClassDef = mc.getMapClassDefinition('Test/MyMap')if theMapClassDef.keys() != expectedKeyMap:    print "Wrong keys for theMapClassDef"    print "Expected:\n%s" % (expectedKeyMap)    print "Found:\n%s" % (theMapClassDef.keys())    sys.exit(1)if theMapClassDef.getMapClassDefinitionObject() != expectedMapClass:    print "Error: getMapClassDefinitionObject() returned wrong object"    print "Expected:\n%s" % (expectedMapClass)    print "Found:\n%s" % (theMapClassDef.getMapClassDefinitionObject())    sys.exit(1)if mc.hasMapClassDefinition('Test/MyMap') != 1:    print "Error: The marshalling context does not have map class definition 'Test/MyMap'"    sys.exit(1)mc.setRootObject(myTestMap)rootObj = mc.getRootObject()if rootObj != myTestMap:    print "Error: mc.getRootObject() returned wrong object"    print "Expected:\n%s" % (myTestMap)    print "Found:\n%s" % (rootObj)    sys.exit(1)    if isMarshalledData('xyz'):    print "Error: 'xyz' is not marshalled data"    sys.exit(1)if not mc.isMarshalledData(marshalledResult):    print "Not marshalled data.  marshalledResult=%s" % (marshalledResult)    sys.exit(1)keyMap = mc.mapClassDefinitionIterator()if len(keyMap) == 1 and keyMap[0] == 'Test/MyMap':    print ''else:    print "Error: mc.mapClassDefinitionIterator() != ['Test/MapMap']"    print "mc.mapClassDefinitionIterator()=%s" % mc.mapClassDefinitionIterator()    sys.exit()priObj = mc.getPrimaryObject()if priObj != mc:    print "Error: mc.getPrimaryObject() != mc"    print "mc.getPrimaryObject()=%s" % (mc.getPrimaryObject())    print "mc=%s" % (mc)    sys.exit()formattedOutput = '%s' % (mc)formattedOutput1 = mc.__str__()formattedOutput2 = mc.__repr__()formattedOutput3 = formatObject(myTestMap, mc)if (formattedOutput != formattedOutput1 or    formattedOutput != formattedOutput2 or    formattedOutput != formattedOutput3):    print "Error in str(), repr(), or formatObject function"    print "formattedOutput=%s" % (formattedOutput)    print "formattedOutput1=%s" % (formattedOutput)    print "formattedOutput2=%s" % (formattedOutput)    print "formattedOutput3=%s" % (formattedOutput)    sys.exit(1)# Test the marshall function using a MapClassDefinitionexpectedResult2 = (    "@SDT/*:558:@SDT/{:398::13:map-class-map@SDT/{:370::10:Test/MyMap" +    "@SDT/{:345::4:keys@SDT/[4:298:@SDT/{:50::12:display-name" +    "@SDT/$S:4:Name:3:key@SDT/$S:4:name@SDT/{:57::12:display-name" +    "@SDT/$S:10:Executable:3:key@SDT/$S:4:exec@SDT/{:95::12:display-name" +    "@SDT/$S:9:Test Type:3:key@SDT/$S:8:testType:18:display-short-name" +    "@SDT/$S:4:test@SDT/{:56::12:display-name@SDT/$S:7:Outputs:3:key" +    "@SDT/$S:7:outputs:4:name@SDT/$S:10:Test/MyMap@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")marshalledResult2 = marshall(mc, mc)if marshalledResult2 != expectedResult2:    print "Error: Wrong output for marshall function"    print "Expected to find:\n%s" % (expectedResult2)    print "Found:\n%s" % (marshalledResult2)    sys.exit(1)marshalledResult3 = mc.marshall()if marshalledResult3 != expectedResult2:    print "Error: Wrong output for marshall function"    print "Expected to find:\n%s" % (expectedResult2)    print "Found:\n%s" % (marshalledResult3)    sys.exit(1)# Create a STAFMarshallingContext instance specifying the object# and mapClassMapmc2 = STAFMarshallingContext(myTestMap, mc.getMapClassMap())if mc2.hasMapClassDefinition('Test/MyMap') != 1:    print "Error: mc2 does not have map class definition 'Test/MyMap'"    print "mc2=%s" % mc2    sys.exit(1)rootObj = mc2.getRootObject()if rootObj != myTestMap:    print "Error: mc2.getRootObject() returned wrong object"    print "Expected:\n%s" % (myTestMap)    print "Found:\n%s" % (rootObj)    sys.exit(1)######################################### Next, test the unmarshall function   #########################################print "Testing unmarshall function"# Unmarshall the marshalledResultmc = unmarshall(marshalledResult)if mc.getRootObject() != myTestMap:    print 'Unmarshalled object not same as original object that was marshaled'    print 'Expected:\n%s' % (myTestMap)    print 'Found:\n%s' % (marshalledResult.getRootObject())    sys.exit(1)# Unmarshall the result from a FS QUERY ENTRY requestfileName = '{STAF/Config/ConfigFile}'result = handle.submit('local', 'FS', 'QUERY ENTRY %s' % fileName)if result.rc != STAFResult.Ok:    print 'FS QUERY ENTRY %s failed' % fileName    print 'RC=%s Result=%s' % (result.rc, result,result)    sys.exit(1)mc = unmarshall(result.result)entryMap = mc.getRootObject()if entryMap['type'] == 'F' and int(entryMap['lowerSize']) > 0 and entryMap['lastModifiedTimestamp']:    print ''else:    print 'Unmarshall/getRootObject() failed'    print "entryMap['type']=%s entryMap['lowerSize']=%s entryMap['lastModifiedTimestamp']=%s" % \          (entryMap['type'], entryMap['lowerSize'], entryMap['lastModoifiedTimestamp'])# Marshall a map and queue it; Get it off the queue, and unmarshall it# and verify results in original map object that was marshalledmessage = marshall(myTestMap)result = handle.submit('local', 'QUEUE', 'QUEUE MESSAGE %s' % message)if result.rc != STAFResult.Ok:    print 'QUEUE MESSAGE failed with RC=%s Result=%s' % (result.rc, result.result)    sys.exit(1)# Another process could obtain the message from the queue and unmarshall# it to get the original dictionary (map) objectresult = handle.submit('local', 'QUEUE', 'GET MESSAGE')if result.rc == STAFResult.Ok:    mc = unmarshall(result.result)    yourTestMap = mc.getRootObject()############################################# Next, test the formatObject function     #############################################print "Testing formatObject function\n"print "Printing formatted output for %s" % (myTestMap)print formatObject(myTestMap)fileName = '{STAF/Config/ConfigFile}'result = handle.submit('local', 'FS', 'QUERY ENTRY %s' % wrapData(fileName))if result.rc != STAFResult.Ok:    print 'FS QUERY ENTRY %s failed' % fileName    print 'RC=%s Result=%s' % (result.rc, result,result)    sys.exit(1)mc = unmarshall(result.result)print "Printing formatted output for FS QUERY ENTRY %s" % (fileName)print formatObject(mc.getRootObject(), mc)# Create a marshalling context and marshall it, and unmarshall itmyMapClassDef = STAFMapClassDefinition('Test/MyMap')myMapClassDef.addKey('name', 'Name')myMapClassDef.addKey('exec', 'Executable')testList = [             {'name': 'TestA', 'exec': '/tests/TestA.py'},             {'name': 'TestB', 'exec': '/tests/TestB.sh'},             {'name': 'TestC', 'exec': '/tests/TestC.cmd'}           ]mc = STAFMarshallingContext()mc.setMapClassDefinition(myMapClassDef)myTestList = []for test in testList:    testMap = myMapClassDef.createInstance()    testMap['name'] = test['name']    testMap['exec'] = test['exec']    myTestList.append(testMap)mc.setRootObject(myTestList)message = marshall(mc)mc2 = unmarshall(message)mc2.getRootObject()if str(mc) != str(mc2):    print "Error: str(mc) != str(mc2)"    print "mc=%s" % mc    print "mc2=%s" % mc2    sys.exit(1)mc3 = STAFMarshallingContext(mapClassMap=mc.getMapClassMap())mc4 = STAFMarshallingContext(obj=myTestList, mapClassMap=mc.getMapClassMap())# Test privacy methodspassword = 'secret';pwWithPD = STAFAddPrivacyDelimiters(password)print 'STAFAddPrivacyDelimiters(%s)=%s' % (password, pwWithPD)print 'STAFEscapePrivacyDelimiters(%s)=%s' % (pwWithPD, STAFEscapePrivacyDelimiters(pwWithPD))print 'STAFMaskPrivateData(%s)=%s' % (pwWithPD, STAFMaskPrivateData(pwWithPD))print 'STAFRemovePrivacyDelimiters(%s)=%s' % (pwWithPD, STAFRemovePrivacyDelimiters(pwWithPD))password = 'secret';pwWithPD = addPrivacyDelimiters(password)print 'addPrivacyDelimiters(%s)=%s' % (password, pwWithPD)print 'escapePrivacyDelimiters(%s)=%s' % (pwWithPD, escapePrivacyDelimiters(pwWithPD))print 'maskPrivateData(%s)=%s' % (pwWithPD, maskPrivateData(pwWithPD))print 'removePrivacyDelimiters(%s)=%s' % (pwWithPD, removePrivacyDelimiters(pwWithPD))# Test private data methodstestData = ['secret', 'secret', '!!@secret@!!', 'Pw: !!@pw@!!', '^!!@secret@!!',            '^!!@secret^@!!', '!!@secret', '!!@secret^@!!',            'Pw1=%s, Pw2=%s.' % (addPrivacyDelimiters('a'), addPrivacyDelimiters('pw')),            '^%s^%s' % (addPrivacyDelimiters('a'), addPrivacyDelimiters('b')),            'Pw1=!!@secret, !!@pw@!!.', 'Pw1=!!@secret@!!, !!@pw.',            'Msg: !!@Pw: ^!!@pw^@!!@!!', '@!!a!!@b@!!', '' ]        print ("KEY:\n  apd() = STAFUtil.addPrivacyDelimiters()\n" +       "  mpd() = STAFUtil.maskPrivateData()\n" +       "  rpd() = STAFUtil.removePrivacyDelimiters()\n" +       "  epd() = STAFUtil.escapePrivacyDelimiters()\n")numErrors = 0;for i in range(0, len(testData)):  data = testData[i]  print '\n%s)  data: %s\n'  % ((i+1), data)  maskedData2 = maskPrivateData(data)  print "mpd(" + data + "): " + maskedData2 + "\n"  dataWithPrivacy = addPrivacyDelimiters(data)  print "apd(" + data + "): " + dataWithPrivacy  dataWithPrivacyRemoved = removePrivacyDelimiters(dataWithPrivacy, 1)  print "rpd(" + dataWithPrivacy + ", 1): " + dataWithPrivacyRemoved  dataWithPrivacyRemoved2 = removePrivacyDelimiters(dataWithPrivacy, 2)  print "rpd(" + dataWithPrivacy + ", 2): " + dataWithPrivacyRemoved2  dataWithAllPrivacyRemoved = removePrivacyDelimiters(dataWithPrivacy, 0)  print "rpd(" + dataWithPrivacy + ", 0): " + dataWithAllPrivacyRemoved  escapedData = escapePrivacyDelimiters(data)  print "\nepd(" + data + "): " + escapedData  dataWithPrivacy = addPrivacyDelimiters(escapedData)  print "apd(" + escapedData + "): " + dataWithPrivacy  dataWithPrivacyRemoved = removePrivacyDelimiters(dataWithPrivacy, 1)  print "rpd(" + dataWithPrivacy + ", 1): " + dataWithPrivacyRemoved  if (dataWithPrivacyRemoved != data):    print "ERROR: removePrivacyDelimiters(" + dataWithPrivacyRemoved + ", 1) != " + data    numErrors = numErrors + 1  dataWithAllPrivacyRemoved = removePrivacyDelimiters(dataWithPrivacy)  print "rpd(" + dataWithPrivacy + ", 0): " + dataWithAllPrivacyRemoved  if (dataWithAllPrivacyRemoved != data):    print "ERROR: removePrivacyDelimiters(" + dataWithAllPrivacyRemoved + ", 0) != " + data    numErrors = numErrors + 1if (numErrors == 0):  print "\nTest completed successfully"else:  print "\nTest failed with " + numErrors +" errors"############## Finish up ##############result = handle.unregister()if (result != STAFResult.Ok):    print "Error unregistering with STAF, RC: %d" % result    sys.exit(result)print "*** All tests successful ***"sys.exit(0)

⌨️ 快捷键说明

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