| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- #! python
- import shutil
- from StringIO import StringIO
- from xml.etree import ElementTree
- class TestResult:
- def _extractXml(self, log, xml):
- dump = False
- log.seek(0)
- for line in log:
- if dump:
- xml.write(line)
- if line.strip() == '</report>':
- dump = False
- else:
- if line.strip() == '<?xml version="1.0"?>':
- dump = True
- xml.write(line)
- def __init__(self, log):
- self._xml = StringIO()
- self._extractXml(log, self._xml)
- self._xml.seek(0)
-
- try:
- report = ElementTree.parse(self._xml).getroot()
- summary = report[0].findall('summary')[0]
- self._tests = summary.find('tcnt').text
- self._executed = summary.find('exec').text
- self._passed = summary.find('pass').text
- self._failed = summary.find('fail').text
- self._avail = True
- except ElementTree.ParseError as e:
- self._avail = False
- self._except = e
-
- def saveXml(self, filename):
- with open(filename, "w") as file:
- self._xml.seek(0)
- shutil.copyfileobj(self._xml, file)
-
- def isAvailable(self):
- return self._avail
-
- def getSummary(self):
- if self._avail:
- return self._tests, self._executed, self._passed, self._failed
- else:
- raise self._except
|