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 __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 setUp(self): self.provider = LocalProvider() self.temp_directory = tempfile.mkdtemp()
class LocalProviderTests(unittest.TestCase): def setUp(self): self.provider = LocalProvider() self.temp_directory = tempfile.mkdtemp() def tearDown(self): shutil.rmtree(self.temp_directory) def create_mock_rom(self, rom_name="Test ROM", console_shortname="Test"): mock_console = mock() mock_console.shortname = console_shortname mock_console.images_directory = self.temp_directory mock_rom = mock() mock_rom.name = rom_name mock_rom.console = mock_console return mock_rom def make_temp_image(self, filename): path = os.path.join(self.temp_directory, filename) f = open(path, "w") f.write("Data") f.close() def test_is_enabled_returns_true(self): self.assertTrue(self.provider.is_enabled()) def test_returns_none_when_no_images(self): rom = self.create_mock_rom("Megaman") self.assertIsNone(self.provider.image_for_rom(rom)) def test_returns_image_with_png_extension(self): rom = self.create_mock_rom("Megaman") self.make_temp_image("Megaman.png") self.assertIsNotNone(self.provider.image_for_rom(rom)) def test_returns_image_with_jpg_extension(self): rom = self.create_mock_rom("Megaman") self.make_temp_image("Megaman.jpg") self.assertIsNotNone(self.provider.image_for_rom(rom)) def test_returns_image_with_jpeg_extension(self): rom = self.create_mock_rom("Megaman") self.make_temp_image("Megaman.jpeg") self.assertIsNotNone(self.provider.image_for_rom(rom)) def test_returns_image_with_tiff_extension(self): rom = self.create_mock_rom("Megaman") self.make_temp_image("Megaman.tiff") self.assertIsNotNone(self.provider.image_for_rom(rom)) def test_ignores_image_with_invalid_extension(self): rom = self.create_mock_rom("Megaman") self.make_temp_image("Megaman.gif") self.assertIsNone(self.provider.image_for_rom(rom)) def test_ignores_directories_with_names_like_files(self): rom = self.create_mock_rom("Megaman") os.mkdir(os.path.join(self.temp_directory, "Megaman.png")) self.assertIsNone(self.provider.image_for_rom(rom)) def test_returns_none_when_no_image_directory(self): rom = self.create_mock_rom("Megaman") rom.console.images_directory = "" self.assertIsNone(self.provider.image_for_rom(rom))
def setUp(self): self.mock_logger = mock() self.provider = LocalProvider(self.mock_logger) self.temp_directory = tempfile.mkdtemp()