Issue #16645: Fix hardlink extracting test for tarfile.

This commit is contained in:
Serhiy Storchaka 2012-12-30 20:15:10 +02:00
parent 14e27d896f
commit 421489f8a6
1 changed files with 11 additions and 16 deletions

View File

@ -297,26 +297,21 @@ class MiscReadTest(CommonReadTest):
def test_extract_hardlink(self): def test_extract_hardlink(self):
# Test hardlink extraction (e.g. bug #857297). # Test hardlink extraction (e.g. bug #857297).
tar = tarfile.open(tarname, errorlevel=1, encoding="iso8859-1") with tarfile.open(tarname, errorlevel=1, encoding="iso8859-1") as tar:
tar.extract("ustar/regtype", TEMPDIR)
self.addCleanup(os.remove, os.path.join(TEMPDIR, "ustar/regtype"))
tar.extract("ustar/regtype", TEMPDIR)
try:
tar.extract("ustar/lnktype", TEMPDIR) tar.extract("ustar/lnktype", TEMPDIR)
except EnvironmentError, e: self.addCleanup(os.remove, os.path.join(TEMPDIR, "ustar/lnktype"))
if e.errno == errno.ENOENT: with open(os.path.join(TEMPDIR, "ustar/lnktype"), "rb") as f:
self.fail("hardlink not extracted properly") data = f.read()
self.assertEqual(md5sum(data), md5_regtype)
data = open(os.path.join(TEMPDIR, "ustar/lnktype"), "rb").read()
self.assertEqual(md5sum(data), md5_regtype)
try:
tar.extract("ustar/symtype", TEMPDIR) tar.extract("ustar/symtype", TEMPDIR)
except EnvironmentError, e: self.addCleanup(os.remove, os.path.join(TEMPDIR, "ustar/symtype"))
if e.errno == errno.ENOENT: with open(os.path.join(TEMPDIR, "ustar/symtype"), "rb") as f:
self.fail("symlink not extracted properly") data = f.read()
self.assertEqual(md5sum(data), md5_regtype)
data = open(os.path.join(TEMPDIR, "ustar/symtype"), "rb").read()
self.assertEqual(md5sum(data), md5_regtype)
def test_extractall(self): def test_extractall(self):
# Test if extractall() correctly restores directory permissions # Test if extractall() correctly restores directory permissions