def __init__(self, config_override=None, consoles_override=None, emulators_override=None): self.validated_base_environment = False self.validated_configuration = False self.logger = IceLogger() self.logger.debug("Initializing Ice") config_data_path = _path_with_override(config_override, "config.txt") consoles_data_path = _path_with_override(consoles_override, "consoles.txt") emulators_data_path = _path_with_override(emulators_override, "emulators.txt") self.config = Configuration( ConfigFileBackingStore(config_data_path), ConfigFileBackingStore(consoles_data_path), ConfigFileBackingStore(emulators_data_path), ) self.steam = Steam() # TODO: Query the list of users some other way self.users = self.steam.local_users() filesystem = Filesystem() parser = ROMParser(self.logger) self.rom_finder = ROMFinder(self.config, filesystem, parser) archive_data_path = Configuration.path_for_data_file("archive.json") managed_rom_archive = ManagedROMArchive(archive_data_path) self.shortcut_synchronizer = SteamShortcutSynchronizer( managed_rom_archive, self.logger) provider = CombinedProvider( LocalProvider(self.logger), ConsoleGridProvider(self.logger), ) self.grid_updater = SteamGridUpdater(provider, self.logger)
def test_is_enabled_returns_true_if_at_least_one_provider_is_enabled(self): provider1 = mock() when(provider1).is_enabled().thenReturn(False) provider2 = mock() when(provider2).is_enabled().thenReturn(True) combined_provider = CombinedProvider(provider1, provider2) self.assertTrue(combined_provider.is_enabled())
def test_is_enabled_returns_false_when_no_providers_are_enabled(self): provider1 = mock() when(provider1).is_enabled().thenReturn(False) provider2 = mock() when(provider2).is_enabled().thenReturn(False) combined_provider = CombinedProvider(provider1, provider2) self.assertFalse(combined_provider.is_enabled())
def test_is_enabled_returns_true_if_at_least_one_provider_is_enabled(self): provider1 = mock.MagicMock() provider1.is_enabled.return_value = False provider2 = mock.MagicMock() provider2.is_enabled.return_value = True combined_provider = CombinedProvider(provider1, provider2) self.assertTrue(combined_provider.is_enabled())
def test_is_enabled_returns_false_when_no_providers_are_enabled(self): provider1 = mock.MagicMock() provider1.is_enabled.return_value = False provider2 = mock.MagicMock() provider2.is_enabled.return_value = False combined_provider = CombinedProvider(provider1, provider2) self.assertFalse(combined_provider.is_enabled())
def test_image_for_rom_returns_image_from_earlier_provider_first(self): image1 = mock.MagicMock() provider1 = mock.MagicMock() provider1.image_for_rom.return_value = image1 image2 = mock.MagicMock() provider2 = mock.MagicMock() provider2.image_for_rom.return_value = image2 mock_rom = mock.MagicMock() combined_provider = CombinedProvider(provider1, provider2) self.assertEquals(combined_provider.image_for_rom(mock_rom), image1)
def test_image_for_rom_skips_disabled_providers(self): image1 = mock.MagicMock() provider1 = mock.MagicMock() provider1.is_enabled.return_value = False provider1.image_for_rom.return_value = image1 image2 = mock.MagicMock() provider2 = mock.MagicMock() provider2.image_for_rom.return_value = image2 mock_rom = mock.MagicMock() combined_provider = CombinedProvider(provider1, provider2) self.assertEquals(combined_provider.image_for_rom(mock_rom), image2)
def test_image_for_rom_skips_disabled_providers(self): rom = mock() image1 = mock() provider1 = mock() when(provider1).is_enabled().thenReturn(False) when(provider1).image_for_rom(rom).thenReturn(image1) image2 = mock() provider2 = mock() when(provider2).is_enabled().thenReturn(True) when(provider2).image_for_rom(rom).thenReturn(image2) combined_provider = CombinedProvider(provider1, provider2) self.assertEqual(combined_provider.image_for_rom(rom), image2)
def test_image_for_rom_returns_image_from_earlier_provider_first(self): rom = mock() image1 = mock() provider1 = mock() when(provider1).is_enabled().thenReturn(True) when(provider1).image_for_rom(rom).thenReturn(image1) image2 = mock() provider2 = mock() when(provider2).is_enabled().thenReturn(True) when(provider2).image_for_rom(rom).thenReturn(image2) combined_provider = CombinedProvider(provider1, provider2) self.assertEqual(combined_provider.image_for_rom(rom), image1)
def test_image_for_rom_returns_image_later_provider_when_first_returns_none( self): provider1 = mock.MagicMock() provider1.image_for_rom.return_value = None image2 = mock.MagicMock() provider2 = mock.MagicMock() provider2.image_for_rom.return_value = image2 image3 = mock.MagicMock() provider3 = mock.MagicMock() provider3.image_for_rom.return_value = image3 mock_rom = mock.MagicMock() combined_provider = CombinedProvider(provider1, provider2) self.assertEquals(combined_provider.image_for_rom(mock_rom), image2)
def __init__(self, steam, filesystem, options): """Valid options for creating an IceEngine are as follows: * config - The path to the config file to use. Searches the default paths for 'config.txt' otherwise * consoles - The path to the consoles file to use. Searches the default paths for 'consoles.txt' if none is provided * emulators - The path to the emulators file to use. Searches the default paths for 'emulators.txt' if none is provided """ self.validated_base_environment = False self.validated_configuration = False self.filesystem = filesystem logger.debug("Initializing Ice") config_data_path = _path_with_override(filesystem, options.config, "config.txt") consoles_data_path = _path_with_override(filesystem, options.consoles, "consoles.txt") emulators_data_path = _path_with_override(filesystem, options.emulators, "emulators.txt") self.config = Configuration( ConfigFileBackingStore(config_data_path), ConfigFileBackingStore(consoles_data_path), ConfigFileBackingStore(emulators_data_path), filesystem, ) self.steam = steam parser = ROMParser() self.rom_finder = ROMFinder(self.config, filesystem, parser) archive_data_path = paths.highest_precedent_data_file( filesystem, "archive.json") managed_rom_archive = ManagedROMArchive(archive_data_path) self.shortcut_synchronizer = SteamShortcutSynchronizer( managed_rom_archive) provider = CombinedProvider( LocalProvider(), ConsoleGridProvider(), ) self.grid_updater = SteamGridUpdater(provider)
def __init__(self, options): """Valid options for creating an IceEngine are as follows: * config - The path to the config file to use. Searches the default paths for 'config.txt' otherwise * consoles - The path to the consoles file to use. Searches the default paths for 'consoles.txt' if none is provided * emulators - The path to the emulators file to use. Searches the default paths for 'emulators.txt' if none is provided * verbose - Turn on debug logging. """ self.validated_base_environment = False self.validated_configuration = False self.logger = IceLogger(verbose=options.verbose) self.logger.debug("Initializing Ice") config_data_path = _path_with_override(options.config, "config.txt") consoles_data_path = _path_with_override(options.consoles, "consoles.txt") emulators_data_path = _path_with_override(options.emulators, "emulators.txt") self.config = Configuration( ConfigFileBackingStore(config_data_path), ConfigFileBackingStore(consoles_data_path), ConfigFileBackingStore(emulators_data_path), ) self.steam = Steam() # TODO: Query the list of users some other way self.users = self.steam.local_users() filesystem = Filesystem() parser = ROMParser(self.logger) self.rom_finder = ROMFinder(self.config, filesystem, parser) archive_data_path = Configuration.path_for_data_file("archive.json") managed_rom_archive = ManagedROMArchive(archive_data_path) self.shortcut_synchronizer = SteamShortcutSynchronizer( managed_rom_archive, self.logger) provider = CombinedProvider( LocalProvider(self.logger), ConsoleGridProvider(self.logger), ) self.grid_updater = SteamGridUpdater(provider, self.logger)
def test_image_for_rom_returns_image_from_later_provider_when_first_returns_none( self): rom = mock() provider1 = mock() when(provider1).is_enabled().thenReturn(True) when(provider1).image_for_rom(rom).thenReturn(None) image2 = mock() provider2 = mock() when(provider2).is_enabled().thenReturn(True) when(provider2).image_for_rom(rom).thenReturn(image2) image3 = mock() provider3 = mock() when(provider3).is_enabled().thenReturn(True) when(provider3).image_for_rom(rom).thenReturn(image3) combined_provider = CombinedProvider(provider1, provider2, provider3) self.assertEqual(combined_provider.image_for_rom(rom), image2)