1
0
mirror of https://github.com/gryf/fs-uae-wrapper.git synced 2025-12-19 20:38:06 +01:00

Added support for zip archiver

Also fixed issue with extension get from regexp
This commit is contained in:
2017-01-02 15:39:28 +01:00
parent 230ec154b6
commit ee65e7ed7f
2 changed files with 60 additions and 52 deletions

View File

@@ -61,27 +61,19 @@ class TestArchive(TestCase):
call.assert_called_once_with(['false', 'x', 'foo'])
def test_archive_which(self):
arch = file_archive.Archive()
self.assertEqual(arch.archiver, 'false')
arch.ARCH = 'sh'
self.assertEqual(file_archive.which('sh'), 'sh')
self.assertIsNone(file_archive.which('blahblahexec'))
self.assertEqual(file_archive.which(['blahblahexec', 'pip', 'sh']),
'pip')
arch.which()
self.assertEqual(arch.archiver, 'sh')
arch.ARCH = 'blahblahexec'
arch.which()
self.assertIsNone(arch.archiver)
arch.ARCH = ['blahblahexec', 'pip', 'sh']
arch.which()
self.assertEqual(arch.archiver, 'pip')
@mock.patch('fs_uae_wrapper.file_archive.Archive.which')
@mock.patch('fs_uae_wrapper.file_archive.which')
@mock.patch('subprocess.call')
def test_tar(self, call, which):
with open('foo', 'w') as fobj:
fobj.write('\n')
which.return_value = 'tar'
arch = file_archive.TarArchive()
arch.archiver = 'tar'
call.return_value = 0
@@ -130,12 +122,14 @@ class TestArchive(TestCase):
self.assertFalse(arch.extract('foo'))
call.assert_called_once_with(['tar', 'xf', 'foo'])
@mock.patch('fs_uae_wrapper.file_archive.Archive.which')
@mock.patch('fs_uae_wrapper.file_archive.which')
@mock.patch('subprocess.call')
def test_lha(self, call, which):
with open('foo', 'w') as fobj:
fobj.write('\n')
which.return_value = 'lha'
arch = file_archive.LhaArchive()
arch.archiver = 'lha'
call.return_value = 0
@@ -148,12 +142,14 @@ class TestArchive(TestCase):
self.assertFalse(arch.extract('foo'))
call.assert_called_once_with(['lha', 'x', 'foo'])
@mock.patch('fs_uae_wrapper.file_archive.Archive.which')
@mock.patch('fs_uae_wrapper.file_archive.which')
@mock.patch('subprocess.call')
def test_lzx(self, call, which):
with open('foo', 'w') as fobj:
fobj.write('\n')
which.return_value = 'unlzx'
arch = file_archive.LzxArchive()
arch.archiver = 'unlzx'
call.return_value = 0
@@ -166,12 +162,14 @@ class TestArchive(TestCase):
self.assertFalse(arch.extract('foo'))
call.assert_called_once_with(['unlzx', '-x', 'foo'])
@mock.patch('fs_uae_wrapper.file_archive.Archive.which')
@mock.patch('fs_uae_wrapper.file_archive.which')
@mock.patch('subprocess.call')
def test_7zip(self, call, which):
with open('foo', 'w') as fobj:
fobj.write('\n')
which.return_value = '7z'
arch = file_archive.SevenZArchive()
arch.archiver = '7z'
call.return_value = 0
@@ -184,12 +182,14 @@ class TestArchive(TestCase):
self.assertFalse(arch.extract('foo'))
call.assert_called_once_with(['7z', 'x', 'foo'])
@mock.patch('fs_uae_wrapper.file_archive.Archive.which')
@mock.patch('fs_uae_wrapper.file_archive.which')
@mock.patch('subprocess.call')
def test_zip(self, call, which):
with open('foo', 'w') as fobj:
fobj.write('\n')
which.return_value = '7z'
arch = file_archive.ZipArchive()
arch.archiver = '7z'
call.return_value = 0
@@ -202,10 +202,12 @@ class TestArchive(TestCase):
self.assertFalse(arch.extract('foo'))
call.assert_called_once_with(['7z', 'x', 'foo'])
@mock.patch('fs_uae_wrapper.file_archive.Archive.which')
@mock.patch('fs_uae_wrapper.file_archive.which')
@mock.patch('subprocess.call')
def test_rar(self, call, which):
which.return_value = 'rar'
arch = file_archive.RarArchive()
arch.archiver = 'rar'
call.return_value = 0
@@ -233,7 +235,7 @@ class TestArchive(TestCase):
call.reset_mock()
call.return_value = 0
arch.archiver = 'unrar'
arch._compess = arch._decompess = arch.archiver = 'unrar'
self.assertFalse(arch.create('foo'))
call.assert_not_called()