diff --git a/README.rst b/README.rst index f296e38..bc91fc6 100644 --- a/README.rst +++ b/README.rst @@ -126,6 +126,7 @@ Options used: * ``wrapper`` (required) with ``cd32`` as an value * ``wrapper_archive`` (required) path to the archive with CD32 iso/cue/wav +* ``wrapper_archiver`` (required) archiver to use for storage save state * ``wrapper_gui_msg`` (optional) if set to "1", will display a graphical message during extracting files @@ -181,7 +182,8 @@ Options used: * ``wrapper`` (required) with ``cd32`` as an value * ``wrapper_archive`` (required) path to the archive with assets (usually means - whole system directories, floppies or hd images) +* ``wrapper_archiver`` (required) archiver to use for storage save state + whole system directories, floppies or hard disk images) * ``wrapper_gui_msg`` (optional) if set to "1", will display a graphical message during extracting files * ``wrapper_persist_data`` (optional) if set to "1", will compress (possibly diff --git a/fs_uae_wrapper/archive.py b/fs_uae_wrapper/archive.py index de54809..97e9e0c 100644 --- a/fs_uae_wrapper/archive.py +++ b/fs_uae_wrapper/archive.py @@ -56,6 +56,10 @@ class Archive(base.Base): if not self._run_emulator(self.fsuae_options.list()): return False + if self._get_saves_dir(): + if not self._save_save(): + return False + return self._make_archive() def _validate_options(self): @@ -79,14 +83,10 @@ class Archive(base.Base): if self.all_options.get('wrapper_persist_data', '0') != '1': return True - saves = self._get_saves_dir() - if saves: - if not self._save_save(): - return False - curdir = os.path.abspath('.') os.chdir(self.dir) + saves = self._get_saves_dir() if saves: shutil.rmtree(saves) os.unlink('Config.fs-uae') diff --git a/tests/test_archive.py b/tests/test_archive.py index 2780ed6..5fca15c 100644 --- a/tests/test_archive.py +++ b/tests/test_archive.py @@ -35,6 +35,9 @@ class TestArchive(TestCase): self.assertFalse(arch._validate_options()) arch.all_options['wrapper_archive'] = 'fake.tgz' + self.assertFalse(arch._validate_options()) + + arch.all_options['wrapper_archiver'] = 'rar' self.assertTrue(arch._validate_options()) @mock.patch('tempfile.mkdtemp') @@ -57,7 +60,8 @@ class TestArchive(TestCase): self.assertFalse(arch.run()) arch.all_options = {'wrapper': 'archive', - 'wrapper_archive': 'fake.tgz'} + 'wrapper_archive': 'fake.tgz', + 'wrapper_archiver': 'rar'} self.assertFalse(arch.run()) @@ -85,12 +89,10 @@ class TestArchive(TestCase): @mock.patch('shutil.rmtree') @mock.patch('fs_uae_wrapper.utils.create_archive') @mock.patch('fs_uae_wrapper.base.Base._get_title') - @mock.patch('fs_uae_wrapper.base.Base._save_save') @mock.patch('fs_uae_wrapper.base.Base._get_saves_dir') - def test_make_archive(self, sdir, save, title, carch, rmt, unlink, rename): + def test_make_archive(self, sdir, title, carch, rmt, unlink, rename): sdir.return_value = None - save.return_value = False title.return_value = '' carch.return_value = False @@ -107,7 +109,4 @@ class TestArchive(TestCase): self.assertTrue(arch._make_archive()) sdir.return_value = '/some/path' - self.assertFalse(arch._make_archive()) - - save.return_value = True self.assertTrue(arch._make_archive())