/breezy/unstable

To get this branch, use:
bzr branch https://code.breezy-vcs.org/breezy/unstable

« back to all changes in this revision

Viewing changes to tools/check-newsbugs.py

  • Committer: Jelmer Vernooij
  • Date: 2017-05-24 01:39:33 UTC
  • mfrom: (3815.3776.6)
  • Revision ID: jelmer@jelmer.uk-20170524013933-ir4y4tqtrsiz2ka2
New upstream snapshot.

Show diffs side-by-side

added added

removed removed

Lines of Context:
7
7
    from launchpadlib.launchpad import Launchpad
8
8
    from lazr.restfulclient import errors
9
9
except ImportError:
10
 
    print "Please install launchpadlib from lp:launchpadlib"
 
10
    print("Please install launchpadlib from lp:launchpadlib")
11
11
    sys.exit(1)
12
12
try:
13
13
    import hydrazine
14
14
except ImportError:
15
 
    print "Please install hydrazine from lp:hydrazine"
 
15
    print("Please install hydrazine from lp:hydrazine")
16
16
    sys.exit(1)
17
17
 
18
18
 
21
21
 
22
22
if len(args) == 1:
23
23
    print ("Usage: check-newsbugs [--launchpad][--webbrowser] "
24
 
           "doc/en/release-notes/bzr-x.y.txt")
25
 
    print "Options:"
26
 
    print "--launchpad     Print out Launchpad mail commands for closing bugs "
27
 
    print "                that are already fixed."
28
 
    print "--webbrowser    Open launchpad bug pages for bugs that are already "
29
 
    print "                fixed."
 
24
           "doc/en/release-notes/brz-x.y.txt")
 
25
    print("Options:")
 
26
    print("--launchpad     Print out Launchpad mail commands for closing bugs ")
 
27
    print("                that are already fixed.")
 
28
    print("--webbrowser    Open launchpad bug pages for bugs that are already ")
 
29
    print("                fixed.")
30
30
    sys.exit(1)
31
31
 
32
32
 
33
33
def report_notmarked(bug, task, section):
34
 
    print
35
 
    print "Bug %d was mentioned in NEWS but is not marked fix released:" % (bug.id, )
36
 
    print "Launchpad title: %s" % bug.title
37
 
    print "NEWS summary: "
38
 
    print section
 
34
    print()
 
35
    print("Bug %d was mentioned in NEWS but is not marked fix released:" % (bug.id, ))
 
36
    print("Launchpad title: %s" % bug.title)
 
37
    print("NEWS summary: ")
 
38
    print(section)
39
39
    if "--launchpad" in options or "-l" in options:
40
 
        print "  bug %d" % bug.id
41
 
        print "  affects %s" % task.bug_target_name
42
 
        print "  status fixreleased"
 
40
        print("  bug %d" % bug.id)
 
41
        print("  affects %s" % task.bug_target_name)
 
42
        print("  status fixreleased")
43
43
    if "--webbrowser" in options or "-w" in options:
44
44
        import webbrowser
45
45
        webbrowser.open('http://pad.lv/%s>' % (bug.id,))
75
75
 
76
76
 
77
77
def print_bug_url(bugno):
78
 
    print '<URL:http://pad.lv/%s>' % (bugno,)
 
78
    print('<URL:http://pad.lv/%s>' % (bugno,))
79
79
 
80
80
launchpad = hydrazine.create_session()
81
81
bugnos = read_news_bugnos(args[1])
82
82
for bugno, section in bugnos:
83
83
    try:
84
84
        bug = launchpad.bugs[bugno]
85
 
    except errors.HTTPError, e:
 
85
    except errors.HTTPError as e:
86
86
        if e.response.status == 401:
87
87
            print_bug_url(bugno)
88
88
            # Private, we can't access the bug content
89
 
            print '%s is private and cannot be accessed' % (bugno,)
 
89
            print('%s is private and cannot be accessed' % (bugno,))
90
90
            continue
91
91
        raise
92
92
 
93
 
    found_bzr = False
 
93
    found_brz = False
94
94
    fix_released = False
95
95
    for task in bug.bug_tasks:
96
96
        parts = task.bug_target_name.split('/')
100
100
        else:
101
101
            project = parts[0]
102
102
            distribution = parts[1]
103
 
        if project == "bzr":
104
 
            found_bzr = True
 
103
        if project == "brz":
 
104
            found_brz = True
105
105
            if not fix_released and task.status == "Fix Released":
106
106
                # We could check that the NEWS section and task_status are in
107
107
                # sync, but that would be overkill. (case at hand: bug #416732)
108
108
                fix_released = True
109
109
 
110
 
    if not found_bzr:
 
110
    if not found_brz:
111
111
        print_bug_url(bugno)
112
 
        print "Bug %d was mentioned in NEWS but is not marked as affecting bzr" % bugno
 
112
        print("Bug %d was mentioned in NEWS but is not marked as affecting brz" % bugno)
113
113
    elif not fix_released:
114
114
        print_bug_url(bugno)
115
115
        report_notmarked(bug, task, section)