Bug 702457

Summary: URLGrabber, progress_obj.start documented badly
Product: Red Hat Enterprise Linux 5 Reporter: Andrew <andrewrwr>
Component: yumAssignee: Packaging Maintenance Team <packaging-team-maint>
Status: CLOSED UPSTREAM QA Contact: Red Hat Satellite QA List <satqe-list>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 5.8CC: james.antill
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-03-14 19:34:50 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Patch to fix the bug none

Description Andrew 2011-05-05 17:31:43 UTC
Created attachment 497172 [details]
Patch to fix the bug

Description of problem:
I found the bug in Ubuntu Natty:
https://bugs.launchpad.net/ubuntu/+source/urlgrabber/+bug/776555

The progress_obj is documented as:
po.start(filename, url, basename, length, text)

But it is called as:
po.start(filename, url, basename, size=..., text=...)

Regression (worked fine in Ubuntu Maverick)

Version-Release number of selected component (if applicable):
Ubuntu version of python-urlgrabber: 3.9.1-4

How reproducible:
100% reproducible

Steps to Reproduce:
1. Pass a progress_obj to the grabber
2. Implement the documented API
3. Code fails when called incorrectly by grabber.py
  
Actual results:
Code fails with a KeyboardInterrupt

Expected results:
Should work as documented, and as it used to work

Additional info:
See details in ubuntu bug:
https://bugs.launchpad.net/ubuntu/+source/urlgrabber/+bug/776555

Comment 1 James Antill 2011-05-19 20:15:31 UTC
This code has been like this pretty much forever (2005 the text param. was added), I can see how you might be confused if you just looked at the documentation though. Alas. we can't just remove the param name from the call, as the API has other params:

    def start(self, filename=None, url=None, basename=None,
              size=None, now=None, text=None):

...so our only sane option is to treat it as a documentation bug, and fix that. Sorry, if that doesn't help you much.

Comment 2 James Antill 2013-03-14 19:34:50 UTC
The documentation was fixed upstream.

This request was evaluated by Red Hat Engineering for inclusion in a Red 
Hat Enterprise Linux maintenance release.

Red Hat does not currently plan to provide this change in a Red Hat 
Enterprise Linux update release for currently deployed products.

With the goal of minimizing risk of change for deployed systems, and in 
response to customer and partner requirements, Red Hat takes a 
conservative approach when evaluating enhancements for inclusion in 
maintenance updates for currently deployed products. The primary 
objectives of update releases are to enable new hardware platform 
support and to resolve critical defects.