#!/usr/bin/python3 import os import shutil import subprocess import tarfile import tempfile import unittest class TestTarfile(unittest.TestCase): def setUp(self): self.tempdir = tempfile.mkdtemp() os.chdir(self.tempdir) def tearDown(self): shutil.rmtree(self.tempdir) def test_tarfile_crash(self): # create tar os.mkdir("run") os.mkdir("var") os.symlink("run", "var/run") tarname = "lala.tar" subprocess.check_call(["tar", "cf", tarname, "./run", "./var"]) # tar works subprocess.check_call(["tar", "xf", tarname]) # but tarfile does not with tarfile.open(tarname) as tar: tar.extractall(".") if __name__ == "__main__": unittest.main()