)
def generate():
- while 1:
- chunk = self.raw.read(chunk_size)
- if not chunk:
- break
- yield chunk
+ # self.raw can be None if we're in safe_mode and the request failed
+ if self.raw is not None:
+ while 1:
+ chunk = self.raw.read(chunk_size)
+ if not chunk:
+ break
+ yield chunk
self._content_consumed = True
gen = generate()
)
def generate():
- chunk = []
+ if self.raw is not None:
+ chunk = []
- while 1:
- c = self.raw.read(1)
- if not c:
- break
+ while 1:
+ c = self.raw.read(1)
+ if not c:
+ break
- if c in newlines:
- yield ''.join(chunk)
- chunk = []
- else:
- chunk.append(c)
+ if c in newlines:
+ yield ''.join(chunk)
+ chunk = []
+ else:
+ chunk.append(c)
- # Yield the remainder, in case the response
- # did not terminate with a newline
- if chunk:
- yield ''.join(chunk)
+ # Yield the remainder, in case the response
+ # did not terminate with a newline
+ if chunk:
+ yield ''.join(chunk)
self._content_consumed = True
lines = '\n'.join(r.iter_lines())
self.assertEqual(lines, quote)
+ def test_null_response(self):
+
+ # Safe mode creates empty responses for failed requests.
+
+ # Iterating on these responses should produce empty sequences
+ r = requests.get('http://_/', config=dict(safe_mode=True))
+ self.assertEquals(list(r.iter_lines()), [])
+
+ r = requests.get('http://_/', config=dict(safe_mode=True))
+ self.assertEquals(list(r.iter_content()), [])
+
def test_timeout(self):
# When not in safe mode, should raise Timeout exception