fix selftest since we changed the name of the products() method
[opensuse:python-bugzilla.git] / selftest.py
1 #!/usr/bin/python
2 # Simple self-test of the bugzilla module
3
4 # Copyright (C) 2007 Red Hat Inc.
5 # Author: Will Woods <wwoods@redhat.com>
6
7 # This program is free software; you can redistribute it and/or modify it
8 # under the terms of the GNU General Public License as published by the
9 # Free Software Foundation; either version 2 of the License, or (at your
10 # option) any later version.  See http://www.gnu.org/copyleft/gpl.html for
11 # the full text of the license.
12
13 from bugzilla import Bugzilla
14 import os, glob, sys
15
16 def find_firefox_cookiefile():
17     cookieglob = os.path.expanduser('~/.mozilla/firefox/default.*/cookies.txt')
18     cookiefiles = glob.glob(cookieglob)
19     if cookiefiles:
20         # TODO return whichever is newest
21         return cookiefiles[0]
22
23 def selftest():
24     url = 'https://bugzilla.redhat.com/xmlrpc.cgi'
25     cookies = find_firefox_cookiefile()
26     public_bug = 1
27     private_bug = 250666
28     query = {'product':'Fedora',
29              'component':'kernel',
30              'version':'devel',
31              'long_desc':'wireless'}
32     
33     print "Woo, welcome to the bugzilla.py self-test."
34     print "Using bugzilla at " + url
35     if not cookies:
36         print "Could not find any cookies for that URL!"
37         print "Log in with firefox or give me a username/password."
38         sys.exit(1)
39     print "Reading cookies from " + cookies
40     b = Bugzilla(url=url,cookies=cookies)
41     print "Reading product list"
42     print b.getproducts()
43     print "Reading public bug (#%i)" % public_bug
44     print b.getbugsimple(public_bug)
45     print "Reading private bug (#%i)" % private_bug
46     try:
47         print b.getbugsimple(private_bug)
48     except xmlrpclib.Fault, e:
49         if 'NotPermitted' in e.faultString:
50             print "Failed: Not authorized."
51         else:
52             print "Failed: Unknown XMLRPC error: %s"  % e
53     q_msg = "%s %s %s %s" % (query['product'],query['component'],
54                              query['version'],query['long_desc'])
55     print "Querying %s bugs" % q_msg
56     q_result = b.query(query)
57     bugs = q_result['bugs']
58     print "%s bugs found." % len(bugs)
59     for bug in bugs:
60         if 'short_short_desc' not in bug:
61             print "wtf? bug %s has no desc." % bug['bug_id']
62         else:
63             print "Bug #%s %-10s - %s - %s" % (bug['bug_id'],
64                     '('+bug['bug_status']+')',bug['assigned_to'],
65                     bug['short_short_desc'])
66     print "Awesome. We're done."
67
68 if __name__ == '__main__':
69     selftest()