mirror of
https://github.com/gryf/fs-uae-wrapper.git
synced 2025-12-31 11:02:36 +01:00
Normalize paths for config options
Removing _kickstart_option in favor of _normalize_options method to detect and replace relative paths with absolute ones. Dictionary with changed options lands as a commandline switches for fs-uae during execution.
This commit is contained in:
@@ -46,18 +46,15 @@ class TestArchive(TestCase):
|
||||
@mock.patch('fs_uae_wrapper.base.ArchiveBase._save_save')
|
||||
@mock.patch('fs_uae_wrapper.base.ArchiveBase._get_saves_dir')
|
||||
@mock.patch('fs_uae_wrapper.base.ArchiveBase._run_emulator')
|
||||
@mock.patch('fs_uae_wrapper.base.ArchiveBase._kickstart_option')
|
||||
@mock.patch('fs_uae_wrapper.base.ArchiveBase._copy_conf')
|
||||
@mock.patch('fs_uae_wrapper.base.ArchiveBase._load_save')
|
||||
@mock.patch('fs_uae_wrapper.base.ArchiveBase._extract')
|
||||
def test_run(self, extract, load_save, copy_conf, kick_option,
|
||||
run_emulator, get_save_dir, save_state, make_arch, which,
|
||||
mkdtemp):
|
||||
def test_run(self, extract, load_save, copy_conf, run_emulator,
|
||||
get_save_dir, save_state, make_arch, which, mkdtemp):
|
||||
|
||||
extract.return_value = False
|
||||
load_save.return_value = False
|
||||
copy_conf.return_value = False
|
||||
kick_option.return_value = False
|
||||
run_emulator.return_value = False
|
||||
get_save_dir.return_value = False
|
||||
save_state.return_value = False
|
||||
@@ -82,10 +79,6 @@ class TestArchive(TestCase):
|
||||
copy_conf.return_value = True
|
||||
self.assertFalse(arch.run())
|
||||
|
||||
kick_option.return_value = {'foo': 'bar'}
|
||||
self.assertFalse(arch.run())
|
||||
self.assertDictEqual(arch.fsuae_options, {'foo': 'bar'})
|
||||
|
||||
run_emulator.return_value = True
|
||||
self.assertFalse(arch.run())
|
||||
|
||||
|
||||
@@ -48,27 +48,32 @@ class TestBase(TestCase):
|
||||
self.assertFalse(os.path.exists(self.dirname))
|
||||
|
||||
@mock.patch('fs_uae_wrapper.utils.get_config')
|
||||
def test_kickstart_option(self, get_config):
|
||||
def test_normalize_options(self, get_config):
|
||||
|
||||
bobj = base.Base('Config.fs-uae', utils.CmdOption(), {})
|
||||
get_config.return_value = {'foo': 'bar'}
|
||||
self.assertDictEqual(bobj._kickstart_option(), {})
|
||||
|
||||
get_config.return_value = {'kickstarts_dir': '/some/path'}
|
||||
self.assertDictEqual(bobj._kickstart_option(),
|
||||
{'kickstarts_dir': '/some/path'})
|
||||
bobj._normalize_options()
|
||||
self.assertDictEqual(bobj.fsuae_options, {})
|
||||
|
||||
os.chdir(self.dirname)
|
||||
get_config.return_value = {'kickstarts_dir': '../some/path'}
|
||||
get_config.return_value = {'foo': 'bar'}
|
||||
bobj._normalize_options()
|
||||
self.assertDictEqual(bobj.fsuae_options,
|
||||
{'foo': os.path.join(self.dirname, 'bar')})
|
||||
|
||||
get_config.return_value = {'floppies_dir': '../some/path'}
|
||||
bobj.fsuae_options = utils.CmdOption()
|
||||
result = os.path.abspath(os.path.join(self.dirname, '../some/path'))
|
||||
self.assertDictEqual(bobj._kickstart_option(),
|
||||
{'kickstarts_dir': result})
|
||||
bobj._normalize_options()
|
||||
self.assertDictEqual(bobj.fsuae_options, {'floppies_dir': result})
|
||||
|
||||
bobj.conf_file = os.path.join(self.dirname, 'Config.fs-uae')
|
||||
get_config.return_value = {'kickstarts_dir': '$CONFIG/../path'}
|
||||
get_config.return_value = {'cdroms_dir': '$CONFIG/../path'}
|
||||
bobj.fsuae_options = utils.CmdOption()
|
||||
result = os.path.abspath(os.path.join(self.dirname, '../path'))
|
||||
self.assertDictEqual(bobj._kickstart_option(),
|
||||
{'kickstarts_dir': result})
|
||||
bobj._normalize_options()
|
||||
self.assertDictEqual(bobj.fsuae_options, {'cdroms_dir': result})
|
||||
|
||||
def test_set_assets_paths(self):
|
||||
|
||||
@@ -240,6 +245,12 @@ class TestBase(TestCase):
|
||||
'wrapper_archiver': '7z'}
|
||||
self.assertTrue(bobj._validate_options())
|
||||
|
||||
which.return_value = None
|
||||
bobj.all_options = {'wrapper': 'dummy',
|
||||
'wrapper_save_state': '1',
|
||||
'wrapper_archiver': '7z'}
|
||||
self.assertFalse(bobj._validate_options())
|
||||
|
||||
@mock.patch('fs_uae_wrapper.path.which')
|
||||
def test_run_clean(self, which):
|
||||
|
||||
|
||||
@@ -16,17 +16,15 @@ class TestCD32(TestCase):
|
||||
@mock.patch('fs_uae_wrapper.base.ArchiveBase._save_save')
|
||||
@mock.patch('fs_uae_wrapper.base.ArchiveBase._get_saves_dir')
|
||||
@mock.patch('fs_uae_wrapper.base.ArchiveBase._run_emulator')
|
||||
@mock.patch('fs_uae_wrapper.base.ArchiveBase._kickstart_option')
|
||||
@mock.patch('fs_uae_wrapper.base.ArchiveBase._copy_conf')
|
||||
@mock.patch('fs_uae_wrapper.base.ArchiveBase._load_save')
|
||||
@mock.patch('fs_uae_wrapper.base.ArchiveBase._extract')
|
||||
def test_run(self, extract, load_save, copy_conf, kick_option,
|
||||
run_emulator, get_save_dir, save_state, which, mkdtemp):
|
||||
def test_run(self, extract, load_save, copy_conf, run_emulator,
|
||||
get_save_dir, save_state, which, mkdtemp):
|
||||
|
||||
extract.return_value = False
|
||||
copy_conf.return_value = False
|
||||
load_save.return_value = False
|
||||
kick_option.return_value = {}
|
||||
run_emulator.return_value = False
|
||||
get_save_dir.return_value = False
|
||||
save_state.return_value = False
|
||||
@@ -50,10 +48,6 @@ class TestCD32(TestCase):
|
||||
load_save.return_value = True
|
||||
self.assertFalse(acd32.run())
|
||||
|
||||
kick_option.return_value = {'foo': 'bar'}
|
||||
self.assertFalse(acd32.run())
|
||||
self.assertDictEqual(acd32.fsuae_options, {'foo': 'bar'})
|
||||
|
||||
run_emulator.return_value = True
|
||||
self.assertTrue(acd32.run())
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ from fs_uae_wrapper import savestate
|
||||
from fs_uae_wrapper import utils
|
||||
|
||||
|
||||
class TestArchive(TestCase):
|
||||
class TestSaveState(TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.dirname = mkdtemp()
|
||||
@@ -31,14 +31,12 @@ class TestArchive(TestCase):
|
||||
@mock.patch('fs_uae_wrapper.base.Base._save_save')
|
||||
@mock.patch('fs_uae_wrapper.base.Base._get_saves_dir')
|
||||
@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')
|
||||
def test_run(self, load_save, copy_conf, kick_option, run_emulator,
|
||||
get_save_dir, save_state, which, mkdtemp):
|
||||
def test_run(self, load_save, copy_conf, run_emulator, get_save_dir,
|
||||
save_state, which, mkdtemp):
|
||||
|
||||
copy_conf.return_value = False
|
||||
kick_option.return_value = False
|
||||
run_emulator.return_value = False
|
||||
get_save_dir.return_value = False
|
||||
save_state.return_value = False
|
||||
@@ -58,10 +56,6 @@ class TestArchive(TestCase):
|
||||
copy_conf.return_value = True
|
||||
self.assertFalse(arch.run())
|
||||
|
||||
kick_option.return_value = {'foo': 'bar'}
|
||||
self.assertFalse(arch.run())
|
||||
self.assertDictEqual(arch.fsuae_options, {'foo': 'bar'})
|
||||
|
||||
run_emulator.return_value = True
|
||||
self.assertTrue(arch.run())
|
||||
|
||||
|
||||
Reference in New Issue
Block a user