Exemplo n.º 1
0
 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)
Exemplo n.º 2
0
 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)
Exemplo n.º 3
0
 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)
Exemplo n.º 6
0
 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)
Exemplo n.º 7
0
 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)
Exemplo n.º 8
0
 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)
Exemplo n.º 9
0
 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)
Exemplo n.º 10
0
 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)
Exemplo n.º 11
0
 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)
Exemplo n.º 12
0
 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)
Exemplo n.º 13
0
 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)
Exemplo n.º 14
0
        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
Exemplo n.º 15
0
            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
Exemplo n.º 16
0
        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
Exemplo n.º 17
0
    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)