Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_extract_ar_with_permissions(self):
# this behavior is not correct: 7z is better, but has security flaws for now
test_file = self.get_test_loc('archive/ar/winlib/zlib.lib')
test_dir = self.get_temp_dir()
result = archive.extract_ar(test_file, test_dir)
assert [] == result
expected = ['dot', 'dot_1']
check_files(test_dir, expected)
def test_extract_ar_with_invalid_path(self):
test_file = self.get_test_loc('archive/ar/ar_invalidpath.ar')
test_dir = self.get_temp_dir()
result = archive.extract_ar(test_file, test_dir)
expected = ['this/that']
check_files(test_dir, expected)
assert [] == result
def test_extract_ar_with_trailing_data(self):
test_file = self.get_test_loc('archive/ar/ar_trailing.a')
test_dir = self.get_temp_dir()
archive.extract_ar(test_file, test_dir)
result = os.path.join(test_dir, 'main.o')
assert os.path.exists(result)
result = os.path.join(test_dir, 'yyerror.o')
assert os.path.exists(result)
def test_extract_ar_verify_dates(self):
test_file = self.get_test_loc('archive/ar/liby.a')
test_dir = self.get_temp_dir()
archive.extract_ar(test_file, test_dir)
expected = [
(os.path.join(test_dir, 'main.o'), '2007-06-12'),
(os.path.join(test_dir, 'yyerror.o'), '2007-06-12'),
]
# DST sends a monkey wrench.... so we only test the date, not the time
for loc, expected_date in expected:
result = commoncode.date.get_file_mtime(loc)
assert result.startswith(expected_date)
def test_extract_deb_package_1(self):
test_file = self.get_test_loc('archive/deb/adduser_3.112ubuntu1_all.deb')
test_dir = self.get_temp_dir()
archive.extract_ar(test_file, test_dir)
check_size(110198, os.path.join(test_dir, 'data.tar.gz'))
def test_get_extractors(self):
test_data = [
('archive/zip/basic.zip', [archive.extract_zip]),
('archive/rar/basic.rar', [archive.extract_rar]),
('archive/deb/adduser_3.112ubuntu1_all.deb', [archive.extract_ar]),
('archive/cpio/elfinfo-1.0-1.fc9.src.cpio', [archive.extract_cpio]),
('archive/rpm/elfinfo-1.0-1.fc9.src.rpm', [archive.extract_rpm, archive.extract_cpio]),
('archive/gzip/file_4.26-1.diff.gz', [archive.uncompress_gzip]),
('archive/ar/liby.a', [archive.extract_ar]),
('archive/bz2/single_file_not_tarred.bz2', [archive.uncompress_bzip2]),
('archive/tar/tarred.tar', [archive.extract_tar]),
('archive/tbz/tarred_bzipped.bz', [archive.uncompress_bzip2]),
('archive/tbz/tarred_bzipped.tar.bz2', [archive.extract_tar]),
('archive/tbz/tarred_bzipped.tbz', [archive.extract_tar]),
('archive/tgz/tarred_gzipped.gz', [archive.uncompress_gzip]),
('archive/tgz/tarred_gzipped.tar.gz', [archive.extract_tar]),
('archive/tgz/tarred_gzipped.tgz', [archive.extract_tar]),
('archive/7z/z.7z', [archive.extract_7z]),
('archive/Z/tr2tex.Z', [archive.extract_Z, ]),
('archive/Z/tkWWW-0.11.tar.Z', [archive.extract_Z, archive.extract_tar]),
('archive/xar/xar-1.4.xar', [archive.extract_xarpkg]),
]
for test_file, expected in test_data:
test_loc = self.get_test_loc(test_file)
def test_extract_ar_broken(self):
test_file = self.get_test_loc('archive/ar/liby-corrupted.a')
test_dir = self.get_temp_dir()
result = archive.extract_ar(test_file, test_dir)
expected = ['__.SYMDEF', 'main.o']
check_files(test_dir, expected)
assert ['None: \nIncorrect file header signature'] == result
def test_extract_ar_basic(self):
test_file = self.get_test_loc('archive/ar/liby.a')
test_dir = self.get_temp_dir()
result = archive.extract_ar(test_file, test_dir)
expected = ['__.SYMDEF', 'main.o', 'yyerror.o']
check_files(test_dir, expected)
assert [] == result
def test_extract_deb_package_2(self):
test_file = self.get_test_loc('archive/deb/adduser_3.113+nmu3ubuntu3_all.deb')
test_dir = self.get_temp_dir()
archive.extract_ar(test_file, test_dir)
check_size(158441, os.path.join(test_dir, 'data.tar.gz'))
def test_extract_deb_package_3(self):
test_file = self.get_test_loc('archive/deb/wget-el_0.5.0-8_all.deb')
test_dir = self.get_temp_dir()
archive.extract_ar(test_file, test_dir)
check_size(36376, os.path.join(test_dir, 'data.tar.gz'))