diff --git a/tests/test_file_archive.py b/tests/test_file_archive.py index cc30983..836c54a 100644 --- a/tests/test_file_archive.py +++ b/tests/test_file_archive.py @@ -54,9 +54,18 @@ class TestArchive(TestCase): call.assert_called_once_with(['false', 'a', 'foo', '.']) call.reset_mock() - call.return_value = 1 + self.assertFalse(arch.extract('foo')) with open('foo', 'w') as fobj: fobj.write('\n') + self.assertTrue(arch.extract('foo')) + + call.return_value = 1 + + call.reset_mock() + self.assertFalse(arch.create('foo')) + call.assert_called_once_with(['false', 'a', 'foo', '.']) + + call.reset_mock() self.assertFalse(arch.extract('foo')) call.assert_called_once_with(['false', 'x', 'foo']) @@ -128,6 +137,13 @@ class TestArchive(TestCase): self.assertTrue(arch.create('foo.tgz')) call.assert_called_once_with(['tar', 'zcf', 'foo.tgz', 'bar', 'foo']) + call.reset_mock() + call.return_value = 1 + arch = file_archive.TarArchive() + self.assertFalse(arch.create('foo.tar')) + call.assert_called_once_with(['tar', 'cf', 'foo.tar', 'bar', 'foo']) + + @mock.patch('fs_uae_wrapper.path.which') @mock.patch('subprocess.call') def test_lha(self, call, which): @@ -208,6 +224,11 @@ class TestArchive(TestCase): self.assertFalse(arch.extract('foo')) call.assert_called_once_with(['7z', 'x', 'foo']) + which.side_effect = ['zip', 'unzip'] + arch = file_archive.ZipArchive() + self.assertEqual(arch._compess, 'zip') + self.assertEqual(arch._decompess, 'unzip') + @mock.patch('fs_uae_wrapper.path.which') @mock.patch('subprocess.call') def test_rar(self, call, which): @@ -231,11 +252,17 @@ class TestArchive(TestCase): self.assertTrue(arch.create('foo.rar')) call.assert_called_once_with(['rar', 'a', 'foo.rar', 'bar', 'baz', 'directory', 'foo']) + + call.return_value = 1 + call.reset_mock() + self.assertFalse(arch.create('foo.rar')) + call.assert_called_once_with(['rar', 'a', 'foo.rar', 'bar', 'baz', + 'directory', 'foo']) + with open('foo', 'w') as fobj: fobj.write('\n') call.reset_mock() - call.return_value = 1 self.assertFalse(arch.extract('foo')) call.assert_called_once_with(['rar', 'x', 'foo']) @@ -250,3 +277,42 @@ class TestArchive(TestCase): call.return_value = 1 self.assertFalse(arch.extract('foo')) call.assert_called_once_with(['unrar', 'x', 'foo']) + + +class TestArchivers(TestCase): + + def test_get(self): + self.assertEqual(file_archive.Archivers.get('tar'), + file_archive.TarArchive) + self.assertEqual(file_archive.Archivers.get('tar.gz'), + file_archive.TarGzipArchive) + self.assertEqual(file_archive.Archivers.get('tgz'), + file_archive.TarGzipArchive) + self.assertEqual(file_archive.Archivers.get('tar.bz2'), + file_archive.TarBzip2Archive) + self.assertEqual(file_archive.Archivers.get('tar.xz'), + file_archive.TarXzArchive) + self.assertEqual(file_archive.Archivers.get('rar'), + file_archive.RarArchive) + self.assertEqual(file_archive.Archivers.get('7z'), + file_archive.SevenZArchive) + self.assertEqual(file_archive.Archivers.get('lha'), + file_archive.LhaArchive) + self.assertEqual(file_archive.Archivers.get('lzh'), + file_archive.LhaArchive) + self.assertEqual(file_archive.Archivers.get('lzx'), + file_archive.LzxArchive) + self.assertIsNone(file_archive.Archivers.get('ace')) + + def test_get_extension_by_name(self): + archivers = file_archive.Archivers + self.assertEqual(archivers.get_extension_by_name('tar'), '.tar') + self.assertEqual(archivers.get_extension_by_name('tgz'), '.tar.gz') + self.assertEqual(archivers.get_extension_by_name('tar.bz2'), '.tar.bz2') + self.assertEqual(archivers.get_extension_by_name('tar.xz'), '.tar.xz') + self.assertEqual(archivers.get_extension_by_name('rar'), '.rar') + self.assertEqual(archivers.get_extension_by_name('7z'), '.7z') + self.assertEqual(archivers.get_extension_by_name('lha'), '.lha') + self.assertEqual(archivers.get_extension_by_name('lzx'), '.lzx') + self.assertIsNone(archivers.get_extension_by_name('ace')) +