diff --git a/britney2/excuse.py b/britney2/excuse.py index 3677996..519b594 100644 --- a/britney2/excuse.py +++ b/britney2/excuse.py @@ -89,6 +89,9 @@ class Excuse(object): self.missing_builds_ood_arch = set() self.old_binaries = defaultdict(set) self.policy_info = {} + self.verdict_info = defaultdict(list) + self.infoline = [] + self.detailed_info = [] self.bounty = {} self.penalty = {} @@ -189,6 +192,18 @@ class Excuse(object): """Add a note in HTML""" self.htmlline.append(note) + def addinfo(self, note): + """Add a note in HTML""" + self.infoline.append(note) + + def add_verdict_info(self, verdict, note): + """Add a note to info about this verdict level""" + self.verdict_info[verdict].append(note) + + def add_detailed_info(self, note): + """Add a note to detailed info""" + self.detailed_info.append(note) + def missing_build_on_arch(self, arch): """Note that the item is missing a build on a given architecture""" self.missing_builds.add(arch) @@ -268,12 +283,24 @@ class Excuse(object): """"adding reason""" self.reason[reason] = 1 - # TODO: remove def _text(self): """Render the excuse in text""" res = [] - for x in self.htmlline: - res.append("" + x + "") + res.append("Migration status for %s (%s to %s): %s" % + (self.name, self.ver[0], self.ver[1], self._format_verdict_summary())) + if not self.is_valid: + res.append("Issues preventing migration:") + for v in sorted(self.verdict_info.keys(), reverse=True): + for x in self.verdict_info[v]: + res.append("" + x + "") + if self.infoline: + res.append("Additional info:") + for x in self.infoline: + res.append("" + x + "") + if self.htmlline: + res.append("Legacy info:") + for x in self.htmlline: + res.append("" + x + "") return res def excusedata(self): @@ -339,6 +366,11 @@ class Excuse(object): else: excusedata["reason"] = sorted(list(self.reason.keys())) excusedata["is-candidate"] = self.is_valid + if self.detailed_info: + di = [] + for x in self.detailed_info: + di.append("" + x + "") + excusedata["detailed-info"] = di return excusedata def add_bounty(self, policy, bounty):