mirror of
https://github.com/python/cpython.git
synced 2025-10-09 16:34:44 +00:00
Issue #16723: httplib.HTTPResponse no longer marked closed when the connection
is automatically closed.
This commit is contained in:
commit
b6c86fd87f
3 changed files with 48 additions and 17 deletions
|
@ -164,6 +164,9 @@ class BasicTest(TestCase):
|
|||
resp.begin()
|
||||
self.assertEqual(resp.read(), b"Text")
|
||||
self.assertTrue(resp.isclosed())
|
||||
self.assertFalse(resp.closed)
|
||||
resp.close()
|
||||
self.assertTrue(resp.closed)
|
||||
|
||||
body = "HTTP/1.1 400.100 Not Ok\r\n\r\nText"
|
||||
sock = FakeSocket(body)
|
||||
|
@ -185,6 +188,9 @@ class BasicTest(TestCase):
|
|||
self.assertFalse(resp.isclosed())
|
||||
self.assertEqual(resp.read(2), b'xt')
|
||||
self.assertTrue(resp.isclosed())
|
||||
self.assertFalse(resp.closed)
|
||||
resp.close()
|
||||
self.assertTrue(resp.closed)
|
||||
|
||||
def test_partial_readintos(self):
|
||||
# if we have a length, the system knows when to close itself
|
||||
|
@ -202,6 +208,9 @@ class BasicTest(TestCase):
|
|||
self.assertEqual(n, 2)
|
||||
self.assertEqual(bytes(b), b'xt')
|
||||
self.assertTrue(resp.isclosed())
|
||||
self.assertFalse(resp.closed)
|
||||
resp.close()
|
||||
self.assertTrue(resp.closed)
|
||||
|
||||
def test_partial_reads_no_content_length(self):
|
||||
# when no length is present, the socket should be gracefully closed when
|
||||
|
@ -215,6 +224,9 @@ class BasicTest(TestCase):
|
|||
self.assertEqual(resp.read(2), b'xt')
|
||||
self.assertEqual(resp.read(1), b'')
|
||||
self.assertTrue(resp.isclosed())
|
||||
self.assertFalse(resp.closed)
|
||||
resp.close()
|
||||
self.assertTrue(resp.closed)
|
||||
|
||||
def test_partial_readintos_no_content_length(self):
|
||||
# when no length is present, the socket should be gracefully closed when
|
||||
|
@ -266,6 +278,9 @@ class BasicTest(TestCase):
|
|||
n = resp.readinto(b)
|
||||
self.assertEqual(n, 0)
|
||||
self.assertTrue(resp.isclosed())
|
||||
self.assertFalse(resp.closed)
|
||||
resp.close()
|
||||
self.assertTrue(resp.closed)
|
||||
|
||||
def test_host_port(self):
|
||||
# Check invalid host_port
|
||||
|
@ -493,6 +508,9 @@ class BasicTest(TestCase):
|
|||
self.assertEqual(resp.status, 200)
|
||||
self.assertEqual(resp.reason, 'OK')
|
||||
self.assertTrue(resp.isclosed())
|
||||
self.assertFalse(resp.closed)
|
||||
resp.close()
|
||||
self.assertTrue(resp.closed)
|
||||
|
||||
def test_readinto_chunked_head(self):
|
||||
chunked_start = (
|
||||
|
@ -513,6 +531,9 @@ class BasicTest(TestCase):
|
|||
self.assertEqual(resp.status, 200)
|
||||
self.assertEqual(resp.reason, 'OK')
|
||||
self.assertTrue(resp.isclosed())
|
||||
self.assertFalse(resp.closed)
|
||||
resp.close()
|
||||
self.assertTrue(resp.closed)
|
||||
|
||||
def test_negative_content_length(self):
|
||||
sock = FakeSocket(
|
||||
|
@ -588,6 +609,9 @@ class BasicTest(TestCase):
|
|||
resp.begin()
|
||||
self.assertEqual(resp.read(), b'')
|
||||
self.assertTrue(resp.isclosed())
|
||||
self.assertFalse(resp.closed)
|
||||
resp.close()
|
||||
self.assertTrue(resp.closed)
|
||||
|
||||
class OfflineTest(TestCase):
|
||||
def test_responses(self):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue