diff options
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/http/client.py | 2 | ||||
-rw-r--r-- | Lib/test/test_httplib.py | 21 |
2 files changed, 22 insertions, 1 deletions
diff --git a/Lib/http/client.py b/Lib/http/client.py index 4663d43..b72cf08 100644 --- a/Lib/http/client.py +++ b/Lib/http/client.py @@ -866,7 +866,7 @@ class HTTPConnection: if encode: datablock = datablock.encode("iso-8859-1") self.sock.sendall(datablock) - + return try: self.sock.sendall(data) except TypeError: diff --git a/Lib/test/test_httplib.py b/Lib/test/test_httplib.py index db123dc..863e4bc 100644 --- a/Lib/test/test_httplib.py +++ b/Lib/test/test_httplib.py @@ -371,6 +371,27 @@ class BasicTest(TestCase): conn.send(io.BytesIO(expected)) self.assertEqual(expected, sock.data) + def test_send_updating_file(self): + def data(): + yield 'data' + yield None + yield 'data_two' + + class UpdatingFile(): + mode = 'r' + d = data() + def read(self, blocksize=-1): + return self.d.__next__() + + expected = b'data' + + conn = client.HTTPConnection('example.com') + sock = FakeSocket("") + conn.sock = sock + conn.send(UpdatingFile()) + self.assertEqual(sock.data, expected) + + def test_send_iter(self): expected = b'GET /foo HTTP/1.1\r\nHost: example.com\r\n' \ b'Accept-Encoding: identity\r\nContent-Length: 11\r\n' \ |