51
51
def test_decode_bad_data(self):
52
52
fp = BytesIO(b'\x00' * 10)
53
self.assertRaises(zlib.error, HTTPResponse, fp, headers={
53
self.assertRaises(DecodeError, HTTPResponse, fp, headers={
54
54
'content-encoding': 'deflate'
64
64
self.assertEqual(r.data, b'foo')
66
def test_decode_deflate_case_insensitve(self):
68
data = zlib.compress(b'foo')
71
r = HTTPResponse(fp, headers={'content-encoding': 'DeFlAtE'})
73
self.assertEqual(r.data, b'foo')
75
def test_chunked_decoding_deflate(self):
77
data = zlib.compress(b'foo')
80
r = HTTPResponse(fp, headers={'content-encoding': 'deflate'},
81
preload_content=False)
83
self.assertEqual(r.read(3), b'')
84
self.assertEqual(r.read(1), b'f')
85
self.assertEqual(r.read(2), b'oo')
87
def test_chunked_decoding_deflate2(self):
89
compress = zlib.compressobj(6, zlib.DEFLATED, -zlib.MAX_WBITS)
90
data = compress.compress(b'foo')
91
data += compress.flush()
94
r = HTTPResponse(fp, headers={'content-encoding': 'deflate'},
95
preload_content=False)
97
self.assertEqual(r.read(1), b'')
98
self.assertEqual(r.read(1), b'f')
99
self.assertEqual(r.read(2), b'oo')
101
def test_chunked_decoding_gzip(self):
103
compress = zlib.compressobj(6, zlib.DEFLATED, 16 + zlib.MAX_WBITS)
104
data = compress.compress(b'foo')
105
data += compress.flush()
108
r = HTTPResponse(fp, headers={'content-encoding': 'gzip'},
109
preload_content=False)
111
self.assertEqual(r.read(11), b'')
112
self.assertEqual(r.read(1), b'f')
113
self.assertEqual(r.read(2), b'oo')
67
115
if __name__ == '__main__':