2088 """Prepare the test result directory in the destination directory storing 2089 into it the result fields. 2090 A summary of the test result is stored both in a file in the test directory 2091 and in the global summary file. 2094 summary[
"id"] = result.GetId()
2095 summary[
"outcome"] = result.GetOutcome()
2096 summary[
"cause"] = result.GetCause()
2097 summary[
"fields"] = result.keys()
2098 summary[
"fields"].sort()
2102 for f
in [
"id",
"outcome",
"cause"]:
2103 summary[f] = str(summary[f])
2104 summary[
"fields"] =
map(str, summary[
"fields"])
2110 if "qmtest.start_time" in summary[
"fields"]:
2111 haveStartDate =
True 2113 haveStartDate =
False 2114 if "qmtest.end_time" in summary[
"fields"]:
2121 self.
_startTime = calendar.timegm(time.strptime(result[
"qmtest.start_time"],
"%Y-%m-%dT%H:%M:%SZ"))
2122 if self._StartTestTime.text
is None:
2123 self._StartDateTime.text = time.strftime(
"%b %d %H:%M %Z", time.localtime(self.
_startTime))
2124 self._StartTestTime.text = str(self.
_startTime)
2125 self._site.set(
"BuildStamp" , result[
"qmtest.start_time"] )
2129 self.
_endTime = calendar.timegm(time.strptime(result[
"qmtest.end_time"],
"%Y-%m-%dT%H:%M:%SZ"))
2133 tl = ET.Element(
"Test")
2134 tl.text = summary[
"id"]
2135 self._TestList.insert(0,tl)
2138 Test = ET.Element(
"Test")
2139 if summary[
"outcome"] ==
"PASS":
2140 Test.set(
"Status",
"passed")
2141 elif summary[
"outcome"] ==
"FAIL":
2142 Test.set(
"Status",
"failed")
2143 elif summary[
"outcome"] ==
"SKIPPED" or summary[
"outcome"] ==
"UNTESTED":
2144 Test.set(
"Status",
"skipped")
2145 elif summary[
"outcome"] ==
"ERROR":
2146 Test.set(
"Status",
"failed")
2147 Name = ET.SubElement(Test,
"Name",)
2148 Name.text = summary[
"id"]
2149 Results = ET.SubElement(Test,
"Results")
2152 self._Testing.insert(3,Test)
2154 if haveStartDate
and haveEndDate:
2157 testduration = str(delta)
2158 Testduration= ET.SubElement(Results,
"NamedMeasurement")
2159 Testduration.set(
"name",
"Execution Time")
2160 Testduration.set(
"type",
"numeric/float" )
2161 value = ET.SubElement(Testduration,
"Value")
2162 value.text = testduration
2165 for n
in (
"qmtest.end_time",
"qmtest.start_time",
"qmtest.cause",
"ExecTest.stdout"):
2166 if n
in summary[
"fields"]:
2167 summary[
"fields"].remove(n)
2171 if "ExecTest.exit_code" in summary[
"fields"] :
2172 summary[
"fields"].remove(
"ExecTest.exit_code")
2173 ExitCode= ET.SubElement(Results,
"NamedMeasurement")
2174 ExitCode.set(
"name",
"exit_code")
2175 ExitCode.set(
"type",
"numeric/integer" )
2176 value = ET.SubElement(ExitCode,
"Value")
2179 TestStartTime= ET.SubElement(Results,
"NamedMeasurement")
2180 TestStartTime.set(
"name",
"Start_Time")
2181 TestStartTime.set(
"type",
"String" )
2182 value = ET.SubElement(TestStartTime,
"Value")
2188 TestEndTime= ET.SubElement(Results,
"NamedMeasurement")
2189 TestEndTime.set(
"name",
"End_Time")
2190 TestEndTime.set(
"type",
"String" )
2191 value = ET.SubElement(TestEndTime,
"Value")
2197 if summary[
"cause"]:
2198 FailureCause= ET.SubElement(Results,
"NamedMeasurement")
2199 FailureCause.set(
"name",
"Cause")
2200 FailureCause.set(
"type",
"String" )
2201 value = ET.SubElement(FailureCause,
"Value")
2206 for field
in summary[
"fields"] :
2207 fields[field] = ET.SubElement(Results,
"NamedMeasurement")
2208 fields[field].set(
"type",
"String")
2209 fields[field].set(
"name",field)
2210 value = ET.SubElement(fields[field],
"Value")
2212 if "<pre>" in result[field][0:6] :
2218 if result.has_key(
"ExecTest.stdout" ) :
2219 Measurement = ET.SubElement(Results,
"Measurement")
2220 value = ET.SubElement(Measurement,
"Value")
2221 if "<pre>" in result[
"ExecTest.stdout"][0:6] :
2228 self._tree.write(self.
_xmlFile,
"utf-8")
def escape_xml_illegal_chars(val, replacement='?')
def WriteResult(self, result)
struct GAUDI_API map
Parametrisation class for map-like implementation.
def convert_xml_illegal_chars(val)