[python-bugzilla] [PATCH] bugzilla: use passed in cookies correctly
Cole Robinson
crobinso at redhat.com
Mon Apr 22 16:13:21 UTC 2013
On 04/22/2013 11:56 AM, Don Zickus wrote:
> When using the option --cookiefile for bugzilla, the cookiefile
> override happens to late. Use the passed in file during the
> beginning of init.
>
> This is addressed by defaulting the cookiefile to None to simplify
> the passed in argument code. Then the Bugzilla init routine assigns
> the default of ~/.bugzillacookies if cookiefile is None.
>
> This shouldn't affect any of the other scripts that do not use the
> cookiefile as an arg.
>
> Reported-by: Jan Pokorný <jpokorny at redhat.com>
> Signed-off-by: Don Zickus <dzickus at redhat.com>
> ---
> bin/bugzilla | 11 ++++-------
> bugzilla/base.py | 5 +++--
> 2 files changed, 7 insertions(+), 9 deletions(-)
>
> diff --git a/bin/bugzilla b/bin/bugzilla
> index cd518c0..d6ba8cf 100755
> --- a/bin/bugzilla
> +++ b/bin/bugzilla
> @@ -94,7 +94,7 @@ def setup_parser():
> help="username")
> p.add_option('--password',
> help="password")
> - p.add_option('--cookiefile',
> + p.add_option('--cookiefile', default=None,
> help="cookie file to use for bugzilla authentication")
> p.add_option('--verbose', action='store_true',
> help="give more info about what's going on")
> @@ -900,7 +900,7 @@ def main(bzinstance=None):
> if bzinstance:
> bz = bzinstance
> else:
> - bz = bzclass(url=global_opt.bugzilla)
> + bz = bzclass(url=global_opt.bugzilla, cookiefile=global_opt.cookiefile)
>
>
> # Handle 'login' action
> @@ -933,11 +933,8 @@ def main(bzinstance=None):
> log.info('Using username/password for authentication')
> bz.login(global_opt.user, global_opt.password)
> elif not _is_unittest:
> - if global_opt.cookiefile:
> - bz.cookiefile = global_opt.cookiefile
> - cookiefile = bz.cookiefile
> - if os.path.exists(cookiefile):
> - log.info('Using cookies in %s for authentication', cookiefile)
> + if os.path.exists(bz.cookiefile):
> + log.info('Using cookies in %s for authentication', bz.cookiefile)
> else:
> log.info('No authentication info provided.')
>
> diff --git a/bugzilla/base.py b/bugzilla/base.py
> index c2b9295..658fcc7 100644
> --- a/bugzilla/base.py
> +++ b/bugzilla/base.py
> @@ -187,13 +187,14 @@ class BugzillaBase(object):
> url = url + '/xmlrpc.cgi'
> return url
>
> - def __init__(self, url=None, user=None, password=None,
> - cookiefile=os.path.expanduser('~/.bugzillacookies')):
> + def __init__(self, url=None, user=None, password=None, cookiefile=None):
> # Settings the user might want to tweak
> self.user = user or ''
> self.password = password or ''
> self.url = ''
>
> + if not cookiefile:
> + cookiefile = os.path.expanduser('~/.bugzillacookies')
> self._cookiefobj = None
> self._cookiejar = None
> self._cookiefile = -1
>
ACK, pushed now.
Thanks,
Cole
More information about the python-bugzilla
mailing list