Exemplo n.º 1
0
def writeExecutionResult(gen, name, r):
    if r == None or r.hasError():
        stat = "failed"
    else:
        stat = "passed"

    startElement(gen, None, "Test", {u"Status": stat})
    writeElement(gen, None, "Name", name)
    writeElement(gen, None, "FullName", name)
    startElement(gen, None, "NamedMeasurement", {
        u"type": u"text/string",
        u"name": u"Exit Code"
    })
    if r:
        msg = "(Unexpected)"
        ec = r.exitCode
        if ec == 0:
            msg = "(Success)"
        elif ec == 1:
            msg = "(Failed)"
        elif ec == 2:
            msg = "(Canceled)"

        writeElement(
            gen, None, "Value",
            "Exit status: {0}; Installer exit code: {1} {2}".format(
                exitStatusAsString(r.exitStatus), str(r.exitCode), msg))
    else:
        writeElement(gen, None, "Value",
                     "Could not determine installation result.")

    endElement(gen, None, "NamedMeasurement")

    if r:
        startElement(gen, None, "NamedMeasurement", {
            u"type": u"numeric/double",
            u"name": u"Execution Time"
        })
        writeElement(gen, None, "Value", str(r.executionTime))
        endElement(gen, None, "NamedMeasurement")

    endElement(gen, None, "Test")
Exemplo n.º 2
0
    def toXml(self, result, out):
        atom = "http://www.w3.org/2005/Atom"
        tf = "http://sdk.nokia.com/test-framework/ns/1.0"

        gen = XMLGenerator(out, 'utf-8')
        gen.startDocument()
        gen.startPrefixMapping('atom', atom)
        gen.startPrefixMapping('tf', tf)

        startElement(gen, atom, 'entry')

        writeElement(gen, atom, 'title', result.constructTitle())
        writeElement(gen, atom, 'updated', datetime.datetime.now().isoformat())

        writeElement(gen, tf, 'errorSummary',
                     exitStatusAsString(result.status()))

        writeElement(gen, tf, 'host', socket.gethostname())
        if result._testStart != None:
            writeElement(gen, tf, 'testStart', result._testStart.isoformat())
        else:
            result._internalErrors.append(
                "Result generator: no start timestamp found.")

        if result._testEnd != None:
            writeElement(gen, tf, 'testEnd', result._testEnd.isoformat())
        else:
            result._internalErrors.append(
                "Result generator: no end timestamp found.")

        startElement(gen, tf, 'installer')
        writeElement(gen, tf, 'sourceUrl', result._installerSourceLocation)
        writeElement(gen, tf, 'platform', result._installerTargetPlatform)
        #TODO revision
        endElement(gen, tf, 'installer')

        if result._testcase != None:
            startElement(gen, tf, 'testCase')
            writeElement(gen, tf, 'name', result._testcase.name())
            writeElement(gen, tf, 'path', result._testcase.path())
            writeElement(gen, tf, 'installScript',
                         result._testcase.installscript())
            endElement(gen, tf, 'testCase')
        else:
            result._internalErrors.append(
                "Result generator: No test case given.")

        if result._installationResult != None:
            startElement(gen, tf, 'installationResult')
            writeElement(gen, tf, 'exitCode',
                         str(result._installationResult.exitCode))
            writeElement(
                gen, tf, 'exitStatus',
                exitStatusAsString(result._installationResult.exitStatus))
            endElement(gen, tf, 'installationResult')
        else:
            result._internalErrors.append(
                "Result generator: No installation result given.")
        startElement(gen, tf, 'checkerResult')

        for err in result._checkerErrors:
            writeElement(gen, tf, 'error', err)
        endElement(gen, tf, 'checkerResult')

        startElement(gen, tf, 'virtualMachine')
        writeElement(gen, tf, 'path', result._vm.vmxPath())
        writeElement(gen, tf, 'platform', result._vm.ostype())
        writeElement(gen, tf, 'snapshot', result._vm.snapshot())
        endElement(gen, tf, 'virtualMachine')

        startElement(gen, tf, 'internalErrors')
        for i in result._internalErrors:
            writeElement(gen, tf, 'internalError', str(i))

        endElement(gen, tf, 'internalErrors')

        if result._errorSnapshot != None:
            writeElement(gen, tf, 'errorSnapshot', result._errorSnapshot)

        endElement(gen, atom, 'entry')

        gen.endDocument()
    def toXml( self, result, out ):
        atom = "http://www.w3.org/2005/Atom"
        tf = "http://sdk.nokia.com/test-framework/ns/1.0"
        
        gen = XMLGenerator( out, 'utf-8' )
        gen.startDocument()
        gen.startPrefixMapping( 'atom', atom)
        gen.startPrefixMapping( 'tf', tf )

        startElement( gen, atom, 'entry' )
        
        writeElement( gen, atom, 'title', result.constructTitle() )
        writeElement( gen, atom, 'updated', datetime.datetime.now().isoformat() )

        writeElement( gen, tf, 'errorSummary', exitStatusAsString( result.status() ) )

        writeElement( gen, tf, 'host', socket.gethostname() )
        if result._testStart != None:
            writeElement( gen, tf, 'testStart', result._testStart.isoformat() )
        else:
            result._internalErrors.append( "Result generator: no start timestamp found." )

        if result._testEnd != None:
            writeElement( gen, tf, 'testEnd', result._testEnd.isoformat() )
        else:
            result._internalErrors.append( "Result generator: no end timestamp found." )
            
        
        startElement( gen, tf, 'installer' )
        writeElement( gen, tf, 'sourceUrl', result._installerSourceLocation )
        writeElement( gen, tf, 'platform', result._installerTargetPlatform )
        #TODO revision
        endElement( gen, tf, 'installer' )

        if result._testcase != None:
            startElement( gen, tf, 'testCase' )
            writeElement( gen, tf, 'name', result._testcase.name() )
            writeElement( gen, tf, 'path', result._testcase.path() )
            writeElement( gen, tf, 'installScript', result._testcase.installscript() )
            endElement( gen, tf, 'testCase' )
        else:
            result._internalErrors.append( "Result generator: No test case given." )

        if result._installationResult != None:
            startElement( gen, tf, 'installationResult' )
            writeElement( gen, tf, 'exitCode', str( result._installationResult.exitCode ) )    
            writeElement( gen, tf, 'exitStatus', exitStatusAsString( result._installationResult.exitStatus ) )    
            endElement( gen, tf, 'installationResult' )
        else:
            result._internalErrors.append( "Result generator: No installation result given." )
        startElement( gen, tf, 'checkerResult' )
        
        for err in result._checkerErrors:
            writeElement( gen, tf, 'error', err )    
        endElement( gen, tf, 'checkerResult' )
            
        startElement( gen, tf, 'virtualMachine' )
        writeElement( gen, tf, 'path', result._vm.vmxPath() )
        writeElement( gen, tf, 'platform', result._vm.ostype() )
        writeElement( gen, tf, 'snapshot', result._vm.snapshot() )
        endElement( gen, tf, 'virtualMachine' )

        startElement( gen, tf, 'internalErrors' )
        for i in result._internalErrors:
            writeElement( gen, tf, 'internalError', str( i ) )

        endElement( gen, tf, 'internalErrors' )
        
        if result._errorSnapshot != None:
            writeElement( gen, tf, 'errorSnapshot', result._errorSnapshot )
            
        endElement( gen, atom, 'entry' )
        
        gen.endDocument()
def writeExecutionResult( gen, name, r ):
        if r == None or r.hasError():
            stat = "failed"
        else:
            stat = "passed"

        startElement( gen, None, "Test", { u"Status":stat } )
        writeElement( gen, None, "Name", name )
        writeElement( gen, None, "FullName", name )
        startElement( gen, None, "NamedMeasurement", { u"type":u"text/string", u"name":u"Exit Code"} )
        if r:
            msg = "(Unexpected)"
            ec = r.exitCode           
            if ec == 0:
               msg = "(Success)"
            elif ec == 1:
               msg = "(Failed)"
            elif ec == 2:
               msg = "(Canceled)"
  
            writeElement( gen, None, "Value", "Exit status: {0}; Installer exit code: {1} {2}".format( exitStatusAsString( r.exitStatus ), str( r.exitCode ), msg ) )
        else:
            writeElement( gen, None, "Value", "Could not determine installation result." )

        endElement( gen, None, "NamedMeasurement" )


        if r:
            startElement( gen, None, "NamedMeasurement", { u"type":u"numeric/double", u"name":u"Execution Time"} )
            writeElement( gen, None, "Value", str( r.executionTime ) )
            endElement( gen, None, "NamedMeasurement" )


        endElement( gen, None, "Test" )