• Jeremy Hylton's avatar
    Fix HTTPError __init__ for cases where fp is None. · 40bbae3b
    Jeremy Hylton yazdı
    The HTTPError class tries to act as a regular response objects for
    HTTP protocol errors that include full responses.  If the failure is
    more basic, like no valid response, the __init__ choked when it tried
    to initialize its superclasses in addinfourl hierarchy that requires a
    valid response.
    
    The solution isn't elegant but seems to be effective.  Do not
    initialize the base classes if there isn't a file object containing
    the response.  In this case, user code expecting to use the addinfourl
    methods will fail; but it was going to fail anyway.
    
    It might be cleaner to factor out HTTPError into two classes, only one
    of which inherits from addinfourl.  Not sure that the extra complexity
    would lead to any improved functionality, though.
    
    Partial fix for SF bug # 563665.
    
    Bug fix candidate for 2.1 and 2.2.
    40bbae3b
urllib2.py 35.7 KB