[Libreoffice-commits] dev-tools.git: scripts/dumpbz
Bjoern Michaelsen
bjoern.michaelsen at canonical.com
Thu Mar 27 13:51:16 PDT 2014
scripts/dumpbz | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 53 insertions(+), 1 deletion(-)
New commits:
commit 41203640aa2c43c6cce689df70aa702d75b43c41
Author: Bjoern Michaelsen <bjoern.michaelsen at canonical.com>
Date: Thu Mar 27 21:50:15 2014 +0100
add aoo tracker
Change-Id: I7b57f81722c48d7ed36268c2dab4caa59e306f0f
diff --git a/scripts/dumpbz b/scripts/dumpbz
index 75a402b..e0a4639 100755
--- a/scripts/dumpbz
+++ b/scripts/dumpbz
@@ -155,6 +155,35 @@ class FdoBugzillaWrapper:
opener = urllib.request.urlopen(FdoBugzillaWrapper.FDOBZ + FdoBugzillaWrapper.BUGXMLQUERY % int(bug_id))
return str(opener.read(), encoding='utf8')
+class AooBugzillaWrapper:
+ AOOBZ='https://issues.apache.org/ooo/'
+ BATCHQUERY = 'buglist.cgi?query_format=advanced&ctype=csv&f1=bug_id&columnlist=bug_id&o1=greaterthan&v1=%d&product=LibreOffice&limit=%d&order=bug_id'
+ CHANGEDQUERY = 'buglist.cgi?query_format=advanced&ctype=csv&f1=bug_id&columnlist=bug_id&chfieldto=Now&chfieldfrom=%s&product=LibreOffice'
+ UNRESOLVEDONLY='&resolution=---'
+ BUGXMLQUERY = 'show_bug.cgi?ctype=xml&id=%d'
+ def __batch_buglist_url(self, offset, limit, unresolved_only):
+ url = FdoBugzillaWrapper.FDOBZ + FdoBugzillaWrapper.BATCHQUERY % (offset, limit)
+ if unresolved_only:
+ url += FdoBugzillaWrapper.UNRESOLVEDONLY
+ return url
+ def __changed_buglist_url(self, since):
+ url = FdoBugzillaWrapper.FDOBZ + FdoBugzillaWrapper.CHANGEDQUERY % (since)
+ return url
+ def __query_bug_list(self, query):
+ opener = urllib.request.urlopen(query)
+ bug_ids = str(opener.read(), encoding='utf8')
+ bug_ids = bug_ids.split('\n')[1:]
+ return bug_ids
+ def get_batch_of_bug_ids(self, offset, batchsize, unresolved):
+ return self.__query_bug_list(self.__batch_buglist_url(int(offset), int(batchsize), unresolved))
+ def get_initial_bug_id(self):
+ return '0'
+ def get_changed_bug_ids(self, since):
+ return self.__query_bug_list(self.__changed_buglist_url(since))
+ def get_bug_xml(self, bug_id):
+ opener = urllib.request.urlopen(FdoBugzillaWrapper.FDOBZ + FdoBugzillaWrapper.BUGXMLQUERY % int(bug_id))
+ return str(opener.read(), encoding='utf8')
+
class SyncWorker:
def __init__(self, storage, bzwrapper):
(self.storage, self.bzwrapper, self.log) = (storage, bzwrapper, None)
@@ -345,18 +374,41 @@ class TestFdoBugzillaWrapper(unittest.TestCase):
bug_xml = self.fdowrapper.get_bug_xml(10000)
self.assertRegex(bug_xml, 'bugzilla version')
+class TestAooBugzillaWrapper(unittest.TestCase):
+ def setUp(self):
+ self.aoowrapper = AooBugzillaWrapper()
+ def __check_bug_list(self, bug_ids):
+ for bug_id in bug_ids:
+ self.assertGreater(int(bug_id), 0)
+ def test_get_batch_of_bug_ids(self):
+ bug_ids = self.aoowrapper.get_batch_of_bug_ids(0, 15, False)
+ self.assertEqual(len(bug_ids), 15)
+ self.__check_bug_list(bug_ids)
+ def test_get_initial_bug_id(self):
+ bug_id = self.aoowrapper.get_initial_bug_id()
+ def test_get_changed_bug_ids(self):
+ bug_ids = self.aoowrapper.get_changed_bug_ids('1d')
+ self.__check_bug_list(bug_ids)
+ def test_get_bug_xml(self):
+ bug_xml = self.aoowrapper.get_bug_xml(10000)
+ self.assertRegex(bug_xml, 'bugzilla version')
+
if __name__ == '__main__':
parser = optparse.OptionParser()
parser.add_option('--selftest', action='store_true', dest='selftest', default=False)
parser.add_option('--storage', action='store', dest='storage')
parser.add_option('--setup', action='store_true', dest='setup', default=False)
+ parser.add_option('--tracker', action='store', dest='tracker', default='fdo')
(options, args) = parser.parse_args()
if options.selftest:
unittest.main(argv=[sys.argv[0]])
else:
if not options.storage:
sys.exit(1)
- bzwrapper = FdoBugzillaWrapper()
+ if options.tracker == 'fdo':
+ bzwrapper = FdoBugzillaWrapper()
+ elif options.tracker == 'aoo':
+ bzwrapper = AooBugzillaWrapper()
storage = LocalGitStorage(options.storage)
if options.setup:
storage.setup()
More information about the Libreoffice-commits
mailing list