From cd017669ae26ae2524d0e3f516643e3857e595d2 Mon Sep 17 00:00:00 2001 From: Ilya Kreymer Date: Wed, 23 Apr 2014 10:00:25 -0700 Subject: [PATCH] bugfix: ChunkedDataReader handles zero-length chunk properly, add test --- pywb/utils/bufferedreaders.py | 2 +- pywb/utils/test/test_bufferedreaders.py | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/pywb/utils/bufferedreaders.py b/pywb/utils/bufferedreaders.py index bfcffa40..04d706dd 100644 --- a/pywb/utils/bufferedreaders.py +++ b/pywb/utils/bufferedreaders.py @@ -221,7 +221,7 @@ class ChunkedDataReader(DecompressingBufferedReader): if not chunk_size: # chunk_size 0 indicates end of file self.all_chunks_read = True - #self._process_read('') + self._process_read('') return data_len = len(self._data) diff --git a/pywb/utils/test/test_bufferedreaders.py b/pywb/utils/test/test_bufferedreaders.py index d061218c..33d1fbd2 100644 --- a/pywb/utils/test/test_bufferedreaders.py +++ b/pywb/utils/test/test_bufferedreaders.py @@ -83,6 +83,10 @@ Chunked data cut off part way through: >>> c.read() + c.read() '123412' +Zero-Length chunk: +>>> ChunkedDataReader(BytesIO("0\r\n\r\n")).read() +'' + Chunked data cut off with exceptions >>> c = ChunkedDataReader(BytesIO("4\r\n1234\r\n4\r\n12"), raise_exceptions=True) >>> c.read() + c.read()