mirror of https://github.com/python/cpython
Issue #4608: urllib.request.urlopen does not return an iterable object
This commit is contained in:
commit
29e2c64edd
|
@ -110,8 +110,9 @@ class urlopen_FileTests(unittest.TestCase):
|
|||
# Test iterator
|
||||
# Don't need to count number of iterations since test would fail the
|
||||
# instant it returned anything beyond the first line from the
|
||||
# comparison
|
||||
for line in self.returned_obj.__iter__():
|
||||
# comparison.
|
||||
# Use the iterator in the usual implicit way to test for ticket #4608.
|
||||
for line in self.returned_obj:
|
||||
self.assertEqual(line, self.text)
|
||||
|
||||
class ProxyTests(unittest.TestCase):
|
||||
|
|
|
@ -23,10 +23,14 @@ class addbase(object):
|
|||
self.fileno = self.fp.fileno
|
||||
else:
|
||||
self.fileno = lambda: None
|
||||
if hasattr(self.fp, "__iter__"):
|
||||
self.__iter__ = self.fp.__iter__
|
||||
if hasattr(self.fp, "__next__"):
|
||||
self.__next__ = self.fp.__next__
|
||||
|
||||
def __iter__(self):
|
||||
# Assigning `__iter__` to the instance doesn't work as intended
|
||||
# because the iter builtin does something like `cls.__iter__(obj)`
|
||||
# and thus fails to find the _bound_ method `obj.__iter__`.
|
||||
# Returning just `self.fp` works for built-in file objects but
|
||||
# might not work for general file-like objects.
|
||||
return iter(self.fp)
|
||||
|
||||
def __repr__(self):
|
||||
return '<%s at %r whose fp = %r>' % (self.__class__.__name__,
|
||||
|
|
Loading…
Reference in New Issue