(self, test, capture=False, **args)
| 49 | self.__start_time = time.perf_counter() |
| 50 | |
| 51 | def _add_result(self, test, capture=False, **args): |
| 52 | if not self.USE_XML: |
| 53 | return |
| 54 | e = self.__e |
| 55 | self.__e = None |
| 56 | if e is None: |
| 57 | return |
| 58 | ET = self.__ET |
| 59 | |
| 60 | e.set('name', args.pop('name', self.__getId(test))) |
| 61 | e.set('status', args.pop('status', 'run')) |
| 62 | e.set('result', args.pop('result', 'completed')) |
| 63 | if self.__start_time: |
| 64 | e.set('time', f'{time.perf_counter() - self.__start_time:0.6f}') |
| 65 | |
| 66 | if capture: |
| 67 | if self._stdout_buffer is not None: |
| 68 | stdout = self._stdout_buffer.getvalue().rstrip() |
| 69 | ET.SubElement(e, 'system-out').text = sanitize_xml(stdout) |
| 70 | if self._stderr_buffer is not None: |
| 71 | stderr = self._stderr_buffer.getvalue().rstrip() |
| 72 | ET.SubElement(e, 'system-err').text = sanitize_xml(stderr) |
| 73 | |
| 74 | for k, v in args.items(): |
| 75 | if not k or not v: |
| 76 | continue |
| 77 | |
| 78 | e2 = ET.SubElement(e, k) |
| 79 | if hasattr(v, 'items'): |
| 80 | for k2, v2 in v.items(): |
| 81 | if k2: |
| 82 | e2.set(k2, sanitize_xml(str(v2))) |
| 83 | else: |
| 84 | e2.text = sanitize_xml(str(v2)) |
| 85 | else: |
| 86 | e2.text = sanitize_xml(str(v)) |
| 87 | |
| 88 | @classmethod |
| 89 | def __makeErrorDict(cls, err_type, err_value, err_tb): |
no test coverage detected