• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mozilla / relman-auto-nag / #4077

pending completion
#4077

push

coveralls-python

suhaibmujahid
Merge remote-tracking branch 'upstream/master' into wiki-missed

549 of 3109 branches covered (17.66%)

615 of 615 new or added lines in 27 files covered. (100.0%)

1773 of 8016 relevant lines covered (22.12%)

0.22 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/auto_nag/scripts/missed_uplifts.py
1
# This Source Code Form is subject to the terms of the Mozilla Public
2
# License, v. 2.0. If a copy of the MPL was not distributed with this file,
3
# You can obtain one at http://mozilla.org/MPL/2.0/.
4

5
from auto_nag import utils
×
6
from auto_nag.bzcleaner import BzCleaner
×
7

8

9
class MissedUplifts(BzCleaner):
×
10
    def __init__(self):
×
11
        super(MissedUplifts, self).__init__()
×
12
        if not self.init_versions():
×
13
            return
×
14

15
        self.beta = self.versions["beta"]
×
16
        self.release = self.versions["release"]
×
17
        self.esr = self.versions["esr"]
×
18
        self.esr_str = "esr" + str(self.esr)
×
19

20
        self.pending_release = utils.get_report_bugs("release", op="?")
×
21
        self.pending_beta = utils.get_report_bugs("beta", op="?")
×
22
        self.pending_esr = utils.get_report_bugs(self.esr_str, op="?")
×
23

24
        self.accepted_release = utils.get_report_bugs("release", op="+")
×
25
        self.accepted_beta = utils.get_report_bugs("beta", op="+")
×
26
        self.accepted_esr = utils.get_report_bugs(self.esr_str, op="+")
×
27

28
        self.status_central = utils.get_flag(
×
29
            self.versions["central"], "status", "central"
30
        )
31
        self.status_beta = utils.get_flag(self.beta, "status", "beta")
×
32
        self.status_release = utils.get_flag(self.release, "status", "release")
×
33
        self.status_esr = utils.get_flag(self.esr, "status", "esr")
×
34

35
    def description(self):
×
36
        return "Bugs fixed in nightly but still affect other supported channels"
×
37

38
    def must_run(self, date):
×
39
        weekday = date.weekday()
×
40
        return weekday <= 4
×
41

42
    def columns(self):
×
43
        return ["id", "priority", "severity", "affected", "approvals", "summary"]
×
44

45
    def sort_columns(self):
×
46
        return lambda p: (tuple(int(x) for x in reversed(p[3])), -int(p[0]))
×
47

48
    def handle_bug(self, bug, data):
×
49
        bugid = str(bug["id"])
×
50
        beta = bug[self.status_beta]
×
51
        release = bug[self.status_release]
×
52
        esr = bug.get(self.status_esr)
×
53
        affected = []
×
54
        if beta == "affected":
×
55
            affected.append(self.beta)
×
56
        if release == "affected":
×
57
            affected.append(self.release)
×
58
        if esr == "affected":
×
59
            affected.append(self.esr)
×
60

61
        approvals = []
×
62
        if bugid in self.pending_beta:
×
63
            approvals.append("beta?")
×
64
        if bugid in self.accepted_beta:
×
65
            approvals.append("beta+")
×
66

67
        if bugid in self.pending_release:
×
68
            approvals.append("release?")
×
69
        if bugid in self.accepted_release:
×
70
            approvals.append("release+")
×
71

72
        if bugid in self.pending_esr:
×
73
            approvals.append(self.esr_str + "?")
×
74
        if bugid in self.accepted_esr:
×
75
            approvals.append(self.esr_str + "+")
×
76

77
        data[bugid] = {
×
78
            "affected": affected,
79
            "approvals": ", ".join(approvals),
80
            "priority": bug["priority"],
81
            "severity": bug["severity"],
82
        }
83

84
        return bug
×
85

86
    def get_bz_params(self, date):
×
87
        fields = [
×
88
            self.status_beta,
89
            self.status_release,
90
            self.status_esr,
91
            "priority",
92
            "severity",
93
        ]
94
        params = {
×
95
            "include_fields": fields,
96
            "bug_type": "defect",
97
            "resolution": ["---", "FIXED"],
98
            "f1": self.status_central,
99
            "o1": "anyexact",
100
            "v1": ",".join(["fixed", "verified"]),
101
            "j2": "OR",
102
            "f2": "OP",
103
            # affected in beta
104
            "f3": self.status_beta,
105
            "o3": "anyexact",
106
            "v3": "affected",
107
            # affected in release
108
            "f4": self.status_release,
109
            "o4": "anyexact",
110
            "v4": "affected",
111
            "f5": "CP",
112
        }
113

114
        return params
×
115

116

117
if __name__ == "__main__":
×
118
    MissedUplifts().run()
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc