Exemplo n.º 1
0
    def print_summary(self, verbose=False, no_color=False):
        "Prints a summary of the validation process so far."

        types = {
            0: "Unknown",
            1: "Extension/Multi-Extension",
            2: "Full Theme",
            3: "Dictionary",
            4: "Language Pack",
            5: "Search Provider",
            7: "Subpackage",
            8: "App"
        }
        detected_type = types[self.detected_type]

        buffer = StringIO()
        self.handler = OutputHandler(buffer, no_color)

        # Make a neat little printout.
        self.handler.write("\n<<GREEN>>Summary:") \
            .write("-" * 30) \
            .write("Detected type: <<BLUE>>%s" % detected_type) \
            .write("-" * 30)

        if self.failed():
            self.handler.write("<<BLUE>>Test failed! Errors:")

            # Print out all the errors/warnings:
            for error in self.errors:
                self._print_message("<<RED>>Error:<<NORMAL>>\t", error,
                                    verbose)
            for warning in self.warnings:
                self._print_message("<<YELLOW>>Warning:<<NORMAL>> ", warning,
                                    verbose)
        else:
            self.handler.write("<<GREEN>>All tests succeeded!")

        if self.notices:
            for notice in self.notices:
                self._print_message(prefix="<<WHITE>>Notice:<<NORMAL>>\t",
                                    message=notice,
                                    verbose=verbose)

        if "is_jetpack" in self.metadata and verbose:
            self.handler.write("\n")
            self.handler.write("<<GREEN>>Jetpack add-on detected.<<NORMAL>>\n"
                               "Identified files:")
            if "jetpack_identified_files" in self.metadata:
                for filename, data in \
                        self.metadata["jetpack_identified_files"].items():
                    self.handler.write((" %s\n" % filename) +
                                       ("  %s : %s" % data))

            if "jetpack_unknown_files" in self.metadata:
                self.handler.write("Unknown files:")
                for filename in self.metadata["jetpack_unknown_files"]:
                    self.handler.write(" %s" % filename)

        self.handler.write("\n")
        if self.unfinished:
            self.handler.write("<<RED>>Validation terminated early")
            self.handler.write("Errors during validation are preventing"
                               "the validation proecss from completing.")
            self.handler.write("Use the <<YELLOW>>--determined<<NORMAL>> "
                               "flag to ignore these errors.")
            self.handler.write("\n")

        return buffer.getvalue()