diff --git a/0005-Add-Bugzilla34._query.patch b/0005-Add-Bugzilla34._query.patch new file mode 100644 index 0000000..ad2f59e --- /dev/null +++ b/0005-Add-Bugzilla34._query.patch @@ -0,0 +1,50 @@ +From 81c40230599e54eb51a2dc5fc538dd85b02a9998 Mon Sep 17 00:00:00 2001 +From: Will Woods +Date: Mon, 28 Jun 2010 11:24:25 -0400 +Subject: [PATCH 05/20] Add Bugzilla34._query + +--- + bugzilla/bugzilla3.py | 20 +++++++++++++++++++- + 1 files changed, 19 insertions(+), 1 deletions(-) + +diff --git a/bugzilla/bugzilla3.py b/bugzilla/bugzilla3.py +index 52890b4..e7ff393 100644 +--- a/bugzilla/bugzilla3.py ++++ b/bugzilla/bugzilla3.py +@@ -125,7 +125,7 @@ class Bugzilla32(Bugzilla3): + + # Bugzilla 3.4 adds some new goodies on top of Bugzilla32. + class Bugzilla34(Bugzilla32): +- version = '0.1' ++ version = '0.2' + user_agent = bugzilla.base.user_agent + ' Bugzilla34/%s' % version + + def _getusers(self, ids=None, names=None, match=None): +@@ -157,6 +157,24 @@ class Bugzilla34(Bugzilla32): + + return self._proxy.User.get(params) + ++ def _query(self,query): ++ '''Query bugzilla and return a list of matching bugs. ++ query must be a dict with fields like those in in querydata['fields']. ++ You can also pass in keys called 'quicksearch' or 'savedsearch' - ++ 'quicksearch' will do a quick keyword search like the simple search ++ on the Bugzilla home page. ++ 'savedsearch' should be the name of a previously-saved search to ++ execute. You need to be logged in for this to work. ++ Returns a dict like this: {'bugs':buglist, ++ 'sql':querystring} ++ buglist is a list of dicts describing bugs, and 'sql' contains the SQL ++ generated by executing the search. ++ You can also pass 'limit:[int]' to limit the number of results. ++ For more info, see: ++ http://www.bugzilla.org/docs/3.4/en/html/api/Bugzilla/WebService/Bug.html ++ ''' ++ return self._proxy.Bug.search(query) ++ + # Bugzilla 3.6 was released April 13, 2010 + # XXX TODO probably more new methods from Bugzilla 3.6 we could use + class Bugzilla36(Bugzilla34): +-- +1.7.6 + diff --git a/0020-allow-various-bnc-instances-in-NovellBugzilla.patch b/0020-allow-various-bnc-instances-in-NovellBugzilla.patch new file mode 100644 index 0000000..12c3110 --- /dev/null +++ b/0020-allow-various-bnc-instances-in-NovellBugzilla.patch @@ -0,0 +1,52 @@ +From ecfc614863186f8b70846e388e038d3c2385f630 Mon Sep 17 00:00:00 2001 +From: Michal Vyskocil +Date: Thu, 26 May 2011 11:00:33 +0200 +Subject: [PATCH 20/20] allow various bnc instances in NovellBugzilla + +The older NovellBugzilla implementation was limited to +bugzilla.novell.com, so using of internal testing instace was not +possible. So code in NovellBugzilla.__init__ and getBugzillaClassForURL +search for 'novell.com' string only. + +In adition NovellBugzilla.__init__ add a url= argument to kwargs if not +exists or if it does not contain novell.com, so this class can be simple +instantiated without arguments in some cases. +--- + bugzilla/__init__.py | 2 +- + bugzilla/nvlbugzilla.py | 6 ++++-- + 2 files changed, 5 insertions(+), 3 deletions(-) + +diff --git a/bugzilla/__init__.py b/bugzilla/__init__.py +index 8b26835..c66b874 100644 +--- a/bugzilla/__init__.py ++++ b/bugzilla/__init__.py +@@ -23,7 +23,7 @@ classlist = ['Bugzilla3', 'Bugzilla32', 'Bugzilla34', 'Bugzilla36', + + def getBugzillaClassForURL(url): + log.debug("Choosing subclass for %s" % url) +- if url.startswith('https://bugzilla.novell.com'): ++ if 'novell.com' in url: + return NovellBugzilla + + s = xmlrpclib.ServerProxy(url) +diff --git a/bugzilla/nvlbugzilla.py b/bugzilla/nvlbugzilla.py +index 4acae00..da2876d 100644 +--- a/bugzilla/nvlbugzilla.py ++++ b/bugzilla/nvlbugzilla.py +@@ -55,9 +55,11 @@ class NovellBugzilla(Bugzilla34): + + def __init__(self, expires=300, **kwargs): + self._expires = expires ++ # allow proper usage of NovellBugzilla with a wrong url argument ++ # (without it or with an another location) ++ if not 'novell.com' in kwargs.get('url', ''): ++ kwargs['url'] = self.__class__.bugzilla_url + super(NovellBugzilla, self).__init__(**kwargs) +- # url argument exists only for backward compatibility, but is always set to same url +- self.url = self.__class__.bugzilla_url + + def __get_expiration(self): + return self._expires +-- +1.7.6 + diff --git a/python-bugzilla.changes b/python-bugzilla.changes index b5d36bb..1f5f9b0 100644 --- a/python-bugzilla.changes +++ b/python-bugzilla.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Fri Jul 29 08:50:47 UTC 2011 - mvyskocil@suse.cz + +- add 0005-Add-Bugzilla34._query.patch fixing query command +- add 0020-allow-various-bnc-instances-in-NovellBugzilla.patch + ------------------------------------------------------------------- Mon May 23 12:36:47 UTC 2011 - mvyskocil@suse.cz diff --git a/python-bugzilla.spec b/python-bugzilla.spec index 2f23e22..c97f3aa 100644 --- a/python-bugzilla.spec +++ b/python-bugzilla.spec @@ -29,11 +29,13 @@ Source: https://fedorahosted.org/releases/p/y/python-bugzilla/%{name}-%{ # generated from python-bugzilla/suse # https://gitorious.org/opensuse/python-bugzilla/commits/suse # cherry-picked patches from git format-patch suse...0.6.1 -Patch0: 0012-Fix-for-httplib-xmlrpclib-changes-in-py2.7.patch -Patch1: 0016-obfuscated-password-support-in-oscrc.patch -Patch2: 0017-fix-typo-in-url-argument.patch -Patch3: 0018-novell-bugzilla-support-in-getBugzillaClassForURL.patch -Patch4: 0019-novell-bugzilla-run-on-3.4.patch +Patch0: 0005-Add-Bugzilla34._query.patch +Patch1: 0012-Fix-for-httplib-xmlrpclib-changes-in-py2.7.patch +Patch2: 0016-obfuscated-password-support-in-oscrc.patch +Patch3: 0017-fix-typo-in-url-argument.patch +Patch4: 0018-novell-bugzilla-support-in-getBugzillaClassForURL.patch +Patch5: 0019-novell-bugzilla-run-on-3.4.patch +Patch6: 0020-allow-various-bnc-instances-in-NovellBugzilla.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: python-devel BuildArch: noarch @@ -57,6 +59,8 @@ but gosh - why not just write something in Python instead? %patch2 -p1 %patch3 -p1 %patch4 -p1 +%patch5 -p1 +%patch6 -p1 %build export CFLAGS="%{optflags}"