Commit c234a524 authored by Martin v. Löwis's avatar Martin v. Löwis

Flush bz2 data even if nothing had been written so far. Fixes #1013882.

Will backport to 2.3.
parent 70aa1f20
......@@ -350,9 +350,9 @@ class _Stream:
if self.closed:
return
if self.mode == "w" and self.type != "tar":
self.buf += self.cmp.flush()
if self.mode == "w" and self.buf:
if self.type != "tar":
self.buf += self.cmp.flush()
self.fileobj.write(self.buf)
self.buf = ""
if self.type == "gz":
......
......@@ -177,7 +177,8 @@ class WriteTest(BaseTest):
def setUp(self):
mode = self.mode + self.sep + self.comp
self.src = tarfile.open(tarname(self.comp), 'r')
self.dst = tarfile.open(tmpname(), mode)
self.dstname = tmpname()
self.dst = tarfile.open(self.dstname, mode)
def tearDown(self):
self.src.close()
......@@ -191,6 +192,11 @@ class WriteTest(BaseTest):
self.dst.posix = 0
self._test()
def test_small(self):
self.dst.add(os.path.join(os.path.dirname(__file__),"cfgparser.1"))
self.dst.close()
self.assertNotEqual(os.stat(self.dstname).st_size, 0)
def _test(self):
for tarinfo in self.src:
if not tarinfo.isreg():
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment