summaryrefslogtreecommitdiff
path: root/tests/utils_tests
diff options
context:
space:
mode:
authorAnton Samarchyan <anton.samarchyan@savoirfairelinux.com>2016-12-01 11:05:08 -0500
committerTim Graham <timograham@gmail.com>2016-12-06 08:28:36 -0500
commitd0112cf9306834b17eb5476363cb6b3b9bfb650c (patch)
tree08433c083c4e5a60b6e60dc5adb58aadc046f7a4 /tests/utils_tests
parentdd99e69fa8f89263d0396f23e0db9aa8fa667b01 (diff)
Fixed #26494 -- Made Archive.extract() preserve file permissions.
Diffstat (limited to 'tests/utils_tests')
-rw-r--r--tests/utils_tests/archives/foobar.tarbin10240 -> 5632 bytes
-rw-r--r--tests/utils_tests/archives/foobar.tar.bz2bin238 -> 265 bytes
-rw-r--r--tests/utils_tests/archives/foobar.tar.gzbin249 -> 253 bytes
-rw-r--r--tests/utils_tests/archives/foobar.zipbin1130 -> 810 bytes
-rw-r--r--tests/utils_tests/test_archive.py10
5 files changed, 10 insertions, 0 deletions
diff --git a/tests/utils_tests/archives/foobar.tar b/tests/utils_tests/archives/foobar.tar
index 5418405070..44886fb33b 100644
--- a/tests/utils_tests/archives/foobar.tar
+++ b/tests/utils_tests/archives/foobar.tar
Binary files differ
diff --git a/tests/utils_tests/archives/foobar.tar.bz2 b/tests/utils_tests/archives/foobar.tar.bz2
index 693529dcef..5a3d8a402e 100644
--- a/tests/utils_tests/archives/foobar.tar.bz2
+++ b/tests/utils_tests/archives/foobar.tar.bz2
Binary files differ
diff --git a/tests/utils_tests/archives/foobar.tar.gz b/tests/utils_tests/archives/foobar.tar.gz
index 5b596bd58e..8582a87139 100644
--- a/tests/utils_tests/archives/foobar.tar.gz
+++ b/tests/utils_tests/archives/foobar.tar.gz
Binary files differ
diff --git a/tests/utils_tests/archives/foobar.zip b/tests/utils_tests/archives/foobar.zip
index dc3e2fc067..b02bb3e95a 100644
--- a/tests/utils_tests/archives/foobar.zip
+++ b/tests/utils_tests/archives/foobar.zip
Binary files differ
diff --git a/tests/utils_tests/test_archive.py b/tests/utils_tests/test_archive.py
index d1dc5f2841..42f445ce9c 100644
--- a/tests/utils_tests/test_archive.py
+++ b/tests/utils_tests/test_archive.py
@@ -1,5 +1,7 @@
import os
import shutil
+import stat
+import sys
import tempfile
import unittest
@@ -42,6 +44,14 @@ class ArchiveTester(object):
extract(self.archive_path, self.tmpdir)
self.check_files(self.tmpdir)
+ @unittest.skipIf(sys.platform == 'win32', 'Python on Windows has a limited os.chmod().')
+ def test_extract_file_permissions(self):
+ """Archive.extract() preserves file permissions."""
+ extract(self.archive_path, self.tmpdir)
+ filepath = os.path.join(self.tmpdir, 'executable')
+ # The file has executable permission.
+ self.assertTrue(os.stat(filepath).st_mode & stat.S_IXOTH)
+
def test_extract_function_with_leadpath(self):
extract(self.archive_lead_path, self.tmpdir)
self.check_files(self.tmpdir)