Author: Valentina Mukhamedzhanova <umi...@gmail.com> Branch: py3.3 Changeset: r72504:c22750fbe7ad Date: 2014-07-26 14:46 +0200 http://bitbucket.org/pypy/pypy/changeset/c22750fbe7ad/
Log: Fix zlib's test_decompress_eof. diff --git a/pypy/module/zlib/interp_zlib.py b/pypy/module/zlib/interp_zlib.py --- a/pypy/module/zlib/interp_zlib.py +++ b/pypy/module/zlib/interp_zlib.py @@ -1,7 +1,7 @@ import sys from pypy.interpreter.gateway import interp2app, unwrap_spec from pypy.interpreter.baseobjspace import W_Root -from pypy.interpreter.typedef import TypeDef, interp_attrproperty_bytes +from pypy.interpreter.typedef import TypeDef, interp_attrproperty_bytes, interp_attrproperty from pypy.interpreter.error import OperationError, oefmt from rpython.rlib.rarithmetic import intmask, r_uint from rpython.rlib.objectmodel import keepalive_until_here @@ -231,6 +231,7 @@ ZLibObject.__init__(self, space) self.unused_data = '' self.unconsumed_tail = '' + self.eof = False try: self.stream = rzlib.inflateInit(wbits) except rzlib.RZlibError, e: @@ -238,7 +239,7 @@ except ValueError: raise OperationError(space.w_ValueError, space.wrap("Invalid initialization option")) - + def __del__(self): """Automatically free the resources used by the stream.""" if self.stream: @@ -280,6 +281,7 @@ raise zlib_error(space, e.msg) string, finished, unused_len = result + self.eof = finished self._save_unconsumed_input(data, finished, unused_len) return space.wrapbytes(string) @@ -327,6 +329,7 @@ flush = interp2app(Decompress.flush), unused_data = interp_attrproperty_bytes('unused_data', Decompress), unconsumed_tail = interp_attrproperty_bytes('unconsumed_tail', Decompress), + eof = interp_attrproperty('eof', Decompress), __doc__ = """decompressobj([wbits]) -- Return a decompressor object. Optional arg wbits is the window buffer size. diff --git a/pypy/module/zlib/test/test_zlib.py b/pypy/module/zlib/test/test_zlib.py --- a/pypy/module/zlib/test/test_zlib.py +++ b/pypy/module/zlib/test/test_zlib.py @@ -166,6 +166,18 @@ dco = zlib.decompressobj() assert dco.flush() == b"" + def test_decompress_eof(self): + import zlib + x = b'x\x9cK\xcb\xcf\x07\x00\x02\x82\x01E' # 'foo' + dco = zlib.decompressobj() + assert dco.eof == False + dco.decompress(x[:-5]) + assert dco.eof == False + dco.decompress(x[-5:]) + assert dco.eof == True + dco.flush() + assert dco.eof == True + def test_decompress_incomplete_stream(self): import zlib # This is 'foo', deflated _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit