diff --git a/fs_uae_wrapper/wrapper.py b/fs_uae_wrapper/wrapper.py index 85af265..64b83dd 100644 --- a/fs_uae_wrapper/wrapper.py +++ b/fs_uae_wrapper/wrapper.py @@ -61,7 +61,7 @@ def parse_args(): for parameter in sys.argv[1:]: key, val = parse_option(parameter) if key is not None and val is not None: - if key == WRAPPER_KEY: + if WRAPPER_KEY in key: wrapper_options[key] = val else: fs_uae_options.append(parameter) diff --git a/tests/test_wrapper.py b/tests/test_wrapper.py index bba9a9d..217a7b5 100644 --- a/tests/test_wrapper.py +++ b/tests/test_wrapper.py @@ -137,3 +137,35 @@ class TestWrapper(TestCase): fobj.write('\n') self.assertEqual(wrapper.parse_args(), ('Config.fs-uae', [], {})) + + # add --wrapper-foo and --wrapper-bar options + sys.argv.extend(['--wrapper=plain', '--wrapper_foo=1', + '--wrapper_bar=false']) + self.assertListEqual(sys.argv, + ['fs-uae-wrapper', '--wrapper=plain', + '--wrapper_foo=1', '--wrapper_bar=false']) + + with open('Config.fs-uae', 'w') as fobj: + fobj.write('\n') + + conf, fsopts, wrapopts = wrapper.parse_args() + self.assertEqual(conf, 'Config.fs-uae') + self.assertListEqual(fsopts, []) + self.assertDictEqual(wrapopts, {'wrapper': 'plain', + 'wrapper_foo': '1', + 'wrapper_bar': 'false'}) + + # mix wrapper* params in commandline and config + sys.argv = ['fs-uae-wrapper', + '--wrapper=plain', + '--wrapper_bar=false', + '--fullscreen', + '--fast_memory=4096'] + with open('Config.fs-uae', 'w') as fobj: + fobj.write('[conf]\nwrapper = cd32\nwrapper_foo = /some/path\n') + + conf, fsopts, wrapopts = wrapper.parse_args() + self.assertEqual(conf, 'Config.fs-uae') + self.assertListEqual(fsopts, ['--fullscreen', '--fast_memory=4096']) + self.assertDictEqual(wrapopts, {'wrapper': 'plain', + 'wrapper_bar': 'false'})