This commit caused every test that does two or more assertContains to
fail, because of #6527. It also made HttpResponse non-pickleable.

Refs #13222.
This commit is contained in:
Aymeric Augustin 2012-10-23 00:08:56 +02:00
parent 11a4b6d923
commit ea57112d53
2 changed files with 2 additions and 9 deletions

View File

@ -260,9 +260,9 @@ class HttpResponse(HttpResponseBase):
else: else:
self._container = [value] self._container = [value]
self._base_content_is_iter = False self._base_content_is_iter = False
self._iterator = iter(self._container)
def __iter__(self): def __iter__(self):
self._iterator = iter(self._container)
return self return self
def __next__(self): def __next__(self):
@ -284,7 +284,7 @@ class HttpResponse(HttpResponseBase):
def tell(self): def tell(self):
if self._base_content_is_iter: if self._base_content_is_iter:
raise Exception("This %s instance cannot tell its position" % self.__class__.__name__) raise Exception("This %s instance cannot tell its position" % self.__class__.__name__)
return len(self.content) return sum([len(chunk) for chunk in self])
class StreamingHttpResponse(HttpResponseBase): class StreamingHttpResponse(HttpResponseBase):

View File

@ -330,13 +330,6 @@ class HttpResponseTests(unittest.TestCase):
self.assertRaises(UnicodeEncodeError, self.assertRaises(UnicodeEncodeError,
getattr, r, 'content') getattr, r, 'content')
def test_iterator_isnt_rewound(self):
# Regression test for #13222
r = HttpResponse('abc')
i = iter(r)
self.assertEqual(list(i), [b'abc'])
self.assertEqual(list(i), [])
def test_file_interface(self): def test_file_interface(self):
r = HttpResponse() r = HttpResponse()
r.write(b"hello") r.write(b"hello")