def _write(self, name, writer, path, *args): try: writer(path, *args) except DataError as err: LOGGER.error(err.message) else: LOGGER.output_file(name, path)
def serialize_output(self, path, split=-1): if path == 'NONE': return serializer = OutputSerializer(path, split) self.suite.serialize(serializer) self.statistics.serialize(serializer) self.exec_errors.serialize(serializer) serializer.close() LOGGER.output_file('Output', path)
def serialize_xunit(self, path): if path == 'NONE': return serializer = XUnitWriter(path) try: self.suite.serialize(serializer) finally: serializer.close() LOGGER.output_file('XUnit', path)
def serialize_output(self, path, log=True): if path == 'NONE': return serializer = OutputWriter(path) self.suite.serialize(serializer) self.statistics.serialize(serializer) self.exec_errors.serialize(serializer) serializer.close() if log: LOGGER.output_file('Output', path)
def serialize_summary(self, path, title=None, background=None): outfile = self._get_outfile(path, 'summary') if not outfile: return self._use_template(outfile, templates.REPORT, title or '%s Summary Report' % self.suite.name, self._get_background_color(background)) self.statistics.serialize(SummaryStatSerializer(outfile)) outfile.write('</body>\n</html>\n') outfile.close() LOGGER.output_file('Summary', path)
def _write(self, name, writer, path, *args): try: writer(path, *args) except DataError as err: LOGGER.error(unicode(err)) except EnvironmentError as err: # `err.filename` can be different than `path` at least if reading # log/report templates or writing split log fails. # `unic` is needed due to http://bugs.jython.org/issue1825. LOGGER.error("Writing %s file '%s' failed: %s: %s" % (name.lower(), path, err.strerror, unic(err.filename))) else: LOGGER.output_file(name, path)
def serialize_log(self, path, title=None, split=-1): outfile = self._get_outfile(path, 'log') if not outfile: return self._use_template(outfile, templates.LOG, title or '%s Test Log' % self.suite.name) if split > 0: self._serialize_split_log(outfile, split) else: self._serialize_log(outfile) outfile.write('</body>\n</html>\n') outfile.close() LOGGER.output_file('Log', path)
def _write(self, name, writer, path, *args): try: writer(path, *args) except DataError as err: LOGGER.error(err.message) except EnvironmentError as err: # `err.filename` can be different than `path` at least if reading # log/report templates or writing split log fails. # `unic` is needed due to http://bugs.jython.org/issue1825. LOGGER.error("Writing %s file '%s' failed: %s: %s" % (name.lower(), path, err.strerror, unic(err.filename))) else: LOGGER.output_file(name, path)
def serialize_report(self, path, title=None, background=None, logpath=None, split=-1): outfile = self._get_outfile(path, 'report') if not outfile: return self._use_template(outfile, templates.REPORT, title or '%s Test Report' % self.suite.name, self._get_background_color(background)) self.statistics.serialize(ReportStatSerializer(outfile)) logpath = logpath if logpath != 'NONE' else None if split > 0 and logpath: self.suite.serialize(SplitReportSerializer(outfile, logpath, split)) else: self.suite.serialize(ReportSerializer(outfile, logpath)) self.statistics.tags.serialize(TagDetailsSerializer(outfile)) outfile.write('</body>\n</html>\n') outfile.close() LOGGER.output_file('Report', path)
self._write('Report', ReportWriter(js_result).write, path, config) def _write(self, name, writer, path, *args): try: writer(path, *args) except DataError, err: LOGGER.error(unicode(err)) except EnvironmentError, err: # `err.filename` can be different than `path` at least if reading # log/report templates or writing split log fails. # `unic` is needed due to http://bugs.jython.org/issue1825. LOGGER.error( "Writing %s file '%s' failed: %s: %s" % (name.lower(), path, err.strerror, unic(err.filename))) else: LOGGER.output_file(name, path) class Results(object): def __init__(self, settings, *sources): self._settings = settings self._sources = sources if len(sources) == 1 and isinstance(sources[0], Result): self._result = sources[0] self._prune = False self.return_code = self._result.return_code else: self._result = None self._prune = True self.return_code = -1 self._js_result = None
config = dict(settings.log_config, minLevel=results.js_result.min_level) self._write_log(results.js_result, settings.log, config) if settings.report: results.js_result.remove_data_not_needed_in_report() self._write_report(results.js_result, settings.report, settings.report_config) return results.return_code def _write_output(self, result, path): try: result.save(path) except DataError, err: LOGGER.error(unicode(err)) else: LOGGER.output_file('Output', path) def _write_xunit(self, result, path): try: result.visit(XUnitWriter(path)) except EnvironmentError, err: LOGGER.error("Opening XUnit result file '%s' failed: %s" % (path, err.strerror)) else: LOGGER.output_file('XUnit', path) def _write_log(self, js_result, path, config): try: LogWriter(js_result).write(path, config) except EnvironmentError, err: # Cannot use err.filename due to http://bugs.jython.org/issue1825
if settings.xunit: self._write_xunit(results.result, settings.xunit) if settings.log: self._write_log(results.js_result, settings.log, settings.log_config) if settings.report: results.js_result.remove_data_not_needed_in_report() self._write_report(results.js_result, settings.report, settings.report_config) return results.return_code def _write_output(self, result, path): try: result.visit(OutputWriter(path)) except DataError, err: LOGGER.error(unicode(err)) else: LOGGER.output_file('Output', path) def _write_xunit(self, result, path): try: result.visit(XUnitWriter(path)) except EnvironmentError, err: LOGGER.error("Opening XUnit result file '%s' failed: %s" % (path, err.strerror)) else: LOGGER.output_file('XUnit', path) def _write_log(self, js_result, path, config): try: LogWriter(js_result).write(path, config) except EnvironmentError, err: # Cannot use err.filename due to http://bugs.jython.org/issue1825
def _write_report(self, js_result, path, config): self._write('Report', ReportWriter(js_result).write, path, config) def _write(self, name, writer, path, *args): try: writer(path, *args) except DataError, err: LOGGER.error(unicode(err)) except EnvironmentError, err: # `err.filename` can be different than `path` at least if reading # log/report templates or writing split log fails. # `unic` is needed due to http://bugs.jython.org/issue1825. LOGGER.error("Writing %s file '%s' failed: %s: %s" % (name.lower(), path, err.strerror, unic(err.filename))) else: LOGGER.output_file(name, path) class Results(object): def __init__(self, data_sources, settings): self._data_sources = data_sources \ if not isinstance(data_sources, basestring) else [data_sources] self._settings = settings self._result = None self._js_result = None self.return_code = -1 @property def result(self): if self._result is None:
def build(self): if self._path: self._context.data_model.set_settings(self._get_settings()) self._format_data() if self._write_file(): LOGGER.output_file(self._type, self._path)