From 62200cb07e76b0b6189bc64d1ca35d43514d0566 Mon Sep 17 00:00:00 2001 From: Priit Laes Date: Sat, 7 Mar 2015 09:40:25 +0200 Subject: [PATCH] Add testcase to demonstrate r.iter_lines() reentrancy issue --- test_requests.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/test_requests.py b/test_requests.py index 07430a8..15406a2 100755 --- a/test_requests.py +++ b/test_requests.py @@ -1052,6 +1052,23 @@ class RequestsTestCase(unittest.TestCase): assert 'application/json' in r.request.headers['Content-Type'] assert {'life': 42} == r.json()['json'] + def test_response_iter_lines(self): + r = requests.get(httpbin('stream/4'), stream=True) + assert r.status_code == 200 + + it = r.iter_lines() + next(it) + assert len(list(it)) == 3 + + @pytest.mark.xfail + def test_response_iter_lines_reentrant(self): + """Response.iter_lines() is not reentrant safe""" + r = requests.get(httpbin('stream/4'), stream=True) + assert r.status_code == 200 + + next(r.iter_lines()) + assert len(list(r.iter_lines())) == 3 + class TestContentEncodingDetection(unittest.TestCase): -- 2.34.1