diff --git a/README.rst b/README.rst index bc91fc6..4f87493 100644 --- a/README.rst +++ b/README.rst @@ -139,6 +139,7 @@ Let's see some sample config for a game, which is saved as [config] wrapper = cd32 wrapper_archive = ChaosEngine.7z + wrapper_archiver = 7z wrapper_gui_msg = 1 amiga_model = CD32 @@ -197,6 +198,7 @@ Example configuration: [config] wrapper = archive wrapper_archive = Workbench_3.1.tar.bz2 + wrapper_archiver = lha wrapper_gui_msg = 1 wrapper_persist_data = 1 diff --git a/fs_uae_wrapper/archive.py b/fs_uae_wrapper/archive.py index 97e9e0c..3a39496 100644 --- a/fs_uae_wrapper/archive.py +++ b/fs_uae_wrapper/archive.py @@ -97,7 +97,7 @@ class Archive(base.Base): if not utils.create_archive(arch, title): return False - os.rename(arch, self.arch_filepath) + shutil.move(arch, self.arch_filepath) os.chdir(curdir) return True diff --git a/tests/test_archive.py b/tests/test_archive.py index 5fca15c..2afdb8c 100644 --- a/tests/test_archive.py +++ b/tests/test_archive.py @@ -26,7 +26,9 @@ class TestArchive(TestCase): except OSError: pass - def test_validate_options(self): + @mock.patch('fs_uae_wrapper.path.which') + def test_validate_options(self, which): + which.return_value = None arch = archive.Archive('Config.fs-uae', utils.CmdOption(), {}) self.assertFalse(arch._validate_options()) @@ -37,17 +39,22 @@ class TestArchive(TestCase): arch.all_options['wrapper_archive'] = 'fake.tgz' self.assertFalse(arch._validate_options()) + arch.all_options['wrapper_archiver'] = 'rar' + self.assertFalse(arch._validate_options()) + + which.return_value = 'unrar' arch.all_options['wrapper_archiver'] = 'rar' self.assertTrue(arch._validate_options()) @mock.patch('tempfile.mkdtemp') + @mock.patch('fs_uae_wrapper.path.which') @mock.patch('fs_uae_wrapper.archive.Archive._make_archive') @mock.patch('fs_uae_wrapper.base.Base._run_emulator') @mock.patch('fs_uae_wrapper.base.Base._kickstart_option') @mock.patch('fs_uae_wrapper.base.Base._copy_conf') @mock.patch('fs_uae_wrapper.base.Base._load_save') @mock.patch('fs_uae_wrapper.base.Base._extract') - def test_run(self, extr, load, copy, kick, run, march, mkdtemp): + def test_run(self, extr, load, copy, kick, run, march, which, mkdtemp): extr.return_value = False load.return_value = False @@ -55,6 +62,7 @@ class TestArchive(TestCase): kick.return_value = False run.return_value = False march.return_value = False + which.return_value = 'rar' arch = archive.Archive('Config.fs-uae', utils.CmdOption(), {}) self.assertFalse(arch.run()) diff --git a/tests/test_base.py b/tests/test_base.py index 287eb5f..c2d11a8 100644 --- a/tests/test_base.py +++ b/tests/test_base.py @@ -240,7 +240,10 @@ class TestBase(TestCase): 'wrapper_archiver': '7z'} self.assertTrue(bobj._validate_options()) - def test_run_clean(self): + @mock.patch('fs_uae_wrapper.path.which') + def test_run_clean(self, which): + + which.return_value = 'rar' bobj = base.Base('Config.fs-uae', utils.CmdOption(), {}) bobj.all_options = {} diff --git a/tests/test_cd32.py b/tests/test_cd32.py index 240a75f..4909c4d 100644 --- a/tests/test_cd32.py +++ b/tests/test_cd32.py @@ -11,7 +11,10 @@ from fs_uae_wrapper import utils class TestCD32(TestCase): - def test_validate_options(self): + @mock.patch('fs_uae_wrapper.path.which') + def test_validate_options(self, which): + + which.return_value = None acd32 = cd32.CD32('Config.fs-uae', utils.CmdOption(), {}) self.assertFalse(acd32._validate_options()) @@ -22,17 +25,23 @@ class TestCD32(TestCase): acd32.all_options['wrapper_archive'] = 'fake.tgz' self.assertFalse(acd32._validate_options()) + acd32.all_options['wrapper_archiver'] = 'rar' + self.assertFalse(acd32._validate_options()) + + which.return_value = 'unrar' acd32.all_options['wrapper_archiver'] = 'rar' self.assertTrue(acd32._validate_options()) @mock.patch('tempfile.mkdtemp') + @mock.patch('fs_uae_wrapper.path.which') @mock.patch('fs_uae_wrapper.base.Base._save_save') @mock.patch('fs_uae_wrapper.base.Base._run_emulator') @mock.patch('fs_uae_wrapper.base.Base._kickstart_option') @mock.patch('fs_uae_wrapper.base.Base._load_save') @mock.patch('fs_uae_wrapper.base.Base._copy_conf') @mock.patch('fs_uae_wrapper.base.Base._extract') - def test_run(self, extr, cconf, lsave, kick, runemul, ssave, mkdtemp): + def test_run(self, extr, cconf, lsave, kick, runemul, ssave, which, + mkdtemp): extr.return_value = False cconf.return_value = False @@ -40,6 +49,7 @@ class TestCD32(TestCase): kick.return_value = {} runemul.return_value = False ssave.return_value = False + which.return_value = 'unrar' acd32 = cd32.CD32('Config.fs-uae', utils.CmdOption(), {}) self.assertFalse(acd32.run())