On Mon, Mar 25, 2013 at 04:14:51PM -0400, Cole Robinson wrote:
On 03/21/2013 02:25 PM, Don Zickus wrote:
> I have been fighting with python bugzilla 0.7.0 and 0.8.0 environments for
> awhile. Recently I noticed the rhbz_back_compat flag that would help unify
> them until everything is straightened out upstream.
>
> However, setting rhbz_back_compat to True caused my scripts which use
'flags'
> to fail. The reason is the bugzilla.query command.
>
> After querying for a list of bugs, they get post_translated and then returned
> to the query command. The query command the re-initializes the the bugs with a
> _Bug object which causes the post_translated bugs to be re-post_translated
> again. This causes a fault with the 'flags' attribute as it goes from a
list to a
> string. :-(
>
> The flow is:
>
> bugzilla/base.py::query()
> self._query
> bugzilla/rhbugzilla.py::_query()
> self.post_translation()
> return [_Bug(...]
> bugzilla/bug.py::__init__
> self._update_dict()
> self.bugzilla.post_translation()
> ^^^^OOPS
>
Thanks for pointing this out. Indeed something is wrong here.
> I don't know the reason the post_translation moved to begin with, but I am just
> moving it back to where it was for now. This fixes my 'flags' issue.
>
The reason it was moved is that there are several other places where we
initialize a _Bug() but were never calling post_translation: getbug* and
createbug. I tried to stick it in a central place (_update_dict) so we would
get it for free everywhere. This should also be fixed by dropping the
post_translation call in rhbugzilla.py, done now:
http://git.fedorahosted.org/cgit/python-bugzilla.git/commit/?id=5217a0c91...
However post_translation also should be safe to run multiple times, at least
to prevent this type of issue in the future. I fixed that up and added some
unittests to make sure it all works:
http://git.fedorahosted.org/cgit/python-bugzilla.git/commit/?id=5217a0c91...
Please confirm that latest git fixes the original issue.
Yes, flipping back and forth using old and new 'flag' styles with your
rhbz.rhbz_back_compat trick in the other email, shows everything working
as I expect it (meaning it failed properly and succeeded too).
Thanks!
Cheers,
Don