Ejemplo n.º 1
0
    def test_sync_roms_for_user_both_adds_and_removes_roms(self):
        rom1 = model.ROM(name='Game1',
                         path='/Path/to/game1',
                         console=fixtures.consoles.flagged)
        shortcut1 = roms.rom_to_shortcut(rom1)
        rom2 = model.ROM(name='Game2',
                         path='/Path/to/game2',
                         console=fixtures.consoles.flagged)
        shortcut2 = roms.rom_to_shortcut(rom2)
        rom3 = model.ROM(name='Game3',
                         path='/Path/to/game3',
                         console=fixtures.consoles.flagged)
        shortcut3 = roms.rom_to_shortcut(rom3)
        rom4 = model.ROM(name='Game4',
                         path='/Path/to/game4',
                         console=fixtures.consoles.flagged)
        shortcut4 = roms.rom_to_shortcut(rom4)

        old_shortcuts = [shortcut1, shortcut2, shortcut4]
        self._set_users_shortcuts(old_shortcuts)

        self.synchronizer.sync_roms_for_user(self.user_fixture.get_context(),
                                             [rom1, rom2, rom3], None)
        new_shortcuts = shortcuts.get_shortcuts(
            self.user_fixture.get_context())

        verify(self.mock_logger, times=2).info(any())
        self.assertEquals(len(new_shortcuts), 3)
        self.assertIn(shortcut1, new_shortcuts)
        self.assertIn(shortcut2, new_shortcuts)
        self.assertIn(shortcut3, new_shortcuts)
Ejemplo n.º 2
0
    def test_updater_keeps_image_if_already_exists(self):
        rom = model.ROM(name='Game1',
                        path='/Path/to/game1',
                        console=fixtures.consoles.flagged)
        shortcut = roms.rom_to_shortcut(rom)

        # Start with a custom image, say a .png
        (handle, path) = tempfile.mkstemp('.png')
        grid.set_custom_image(self.user_fixture.get_context(),
                              shortcuts.shortcut_app_id(shortcut), path)
        os.remove(path)

        # Make the provider return a .jpg
        (handle, path) = tempfile.mkstemp('.jpg')
        when(self.mock_provider).image_for_rom(rom).thenReturn(path)

        self.assertTrue(
            grid.has_custom_image(self.user_fixture.get_context(),
                                  shortcuts.shortcut_app_id(shortcut)))
        self.updater.update_rom_artwork(self.user_fixture.get_context(), rom)
        self.assertTrue(
            grid.has_custom_image(self.user_fixture.get_context(),
                                  shortcuts.shortcut_app_id(shortcut)))

        # Ensure that we are still using the .png, not the .jpg
        (_, ext) = os.path.splitext(
            grid.get_custom_image(self.user_fixture.get_context(),
                                  shortcuts.shortcut_app_id(shortcut)))
        self.assertEqual(ext, '.png')
Ejemplo n.º 3
0
 def test_emulator_rom_launch_options(self, fmt, location, rompath, expected):
   emu = model.Emulator("Mednafen", location, fmt)
   r = model.ROM(
     name = "ROM",
     path = rompath,
     console = mock(),
   )
   self.assertEqual(emulators.emulator_rom_launch_options(emu, r), expected)
Ejemplo n.º 4
0
    def test_sync_roms_for_user_sets_managed_ids(self):
        rom1 = model.ROM(name='Game1',
                         path='/Path/to/game1',
                         console=fixtures.consoles.flagged)
        shortcut1 = roms.rom_to_shortcut(rom1)
        rom2 = model.ROM(name='Game2',
                         path='/Path/to/game2',
                         console=fixtures.consoles.flagged)
        shortcut2 = roms.rom_to_shortcut(rom2)

        self._set_users_shortcuts([])

        self.synchronizer.sync_roms_for_user(self.user_fixture.get_context(),
                                             [rom1, rom2], None)

        new_managed_ids = map(shortcuts.shortcut_app_id,
                              [shortcut1, shortcut2])
        verify(self.mock_archive).set_managed_ids(
            self.user_fixture.get_context(), new_managed_ids)
Ejemplo n.º 5
0
    def test_sync_roms_for_user_logs_once_for_each_added_rom(self):
        self._set_users_shortcuts([])

        rom1 = model.ROM(name='Game1',
                         path='/Path/to/game1',
                         console=fixtures.consoles.flagged)
        shortcut1 = roms.rom_to_shortcut(rom1)
        rom2 = model.ROM(name='Game2',
                         path='/Path/to/game2',
                         console=fixtures.consoles.flagged)
        shortcut2 = roms.rom_to_shortcut(rom2)
        rom3 = model.ROM(name='Game3',
                         path='/Path/to/game3',
                         console=fixtures.consoles.flagged)
        shortcut3 = roms.rom_to_shortcut(rom3)

        self.synchronizer.sync_roms_for_user(self.user_fixture.get_context(),
                                             [rom1, rom2, rom3], None)

        verify(self.mock_logger, times=3).info(any())
Ejemplo n.º 6
0
    def test_sync_roms_for_user_logs_when_a_rom_is_added(self):
        self._set_users_shortcuts([])

        rom = model.ROM(name='Game1',
                        path='/Path/to/game1',
                        console=fixtures.consoles.flagged)
        shortcut = roms.rom_to_shortcut(rom)

        self.synchronizer.sync_roms_for_user(self.user_fixture.get_context(),
                                             [rom], None)

        verify(self.mock_logger).info(any())
Ejemplo n.º 7
0
 def test_rom_shortcut_name(self, name, console_prefix, expected):
     console = model.Console(
         fullname='Nintendo Entertainment System',
         shortname='NES',
         extensions='',
         custom_roms_directory='',
         prefix=console_prefix,
         icon='',
         images_directory='',
         emulator=None,
     )
     rom = model.ROM(name=name, path='/Path/to/ROM', console=console)
     self.assertEqual(roms.rom_shortcut_name(rom), expected)
Ejemplo n.º 8
0
    def test_sync_roms_for_user_saves_shortcuts_after_running(self):
        rom1 = model.ROM(name='Game1',
                         path='/Path/to/game1',
                         console=fixtures.consoles.flagged)
        shortcut1 = roms.rom_to_shortcut(rom1)

        self._set_users_shortcuts([])

        self.synchronizer.sync_roms_for_user(self.user_fixture.get_context(),
                                             [rom1], None)

        updated_shortcuts = shortcuts.get_shortcuts(
            self.user_fixture.get_context())
        self.assertEquals(updated_shortcuts, [shortcut1])
Ejemplo n.º 9
0
    def test_sync_roms_for_user_keeps_unmanaged_shortcuts(self):
        random_shortcut = steam_model.Shortcut("Plex",
                                               "/Some/Random/Path/plex",
                                               "/Some/Random/Path", "", "", "",
                                               False, False, False, 0, [])
        self._set_users_shortcuts([random_shortcut])
        when(self.mock_archive).previous_managed_ids(
            self.user_fixture.get_context()).thenReturn([])

        rom1 = model.ROM(name='Game1',
                         path='/Path/to/game1',
                         console=fixtures.consoles.flagged)
        shortcut1 = roms.rom_to_shortcut(rom1)
        rom2 = model.ROM(name='Game2',
                         path='/Path/to/game2',
                         console=fixtures.consoles.flagged)
        shortcut2 = roms.rom_to_shortcut(rom2)
        rom3 = model.ROM(name='Game3',
                         path='/Path/to/game3',
                         console=fixtures.consoles.flagged)
        shortcut3 = roms.rom_to_shortcut(rom3)
        rom4 = model.ROM(name='Game4',
                         path='/Path/to/game4',
                         console=fixtures.consoles.flagged)
        shortcut4 = roms.rom_to_shortcut(rom4)

        self.synchronizer.sync_roms_for_user(self.user_fixture.get_context(),
                                             [rom1, rom2, rom3, rom4], None)
        new_shortcuts = shortcuts.get_shortcuts(
            self.user_fixture.get_context())

        self.assertEquals(len(new_shortcuts), 5)
        self.assertIn(random_shortcut, new_shortcuts)
        self.assertIn(shortcut1, new_shortcuts)
        self.assertIn(shortcut2, new_shortcuts)
        self.assertIn(shortcut3, new_shortcuts)
        self.assertIn(shortcut4, new_shortcuts)
Ejemplo n.º 10
0
    def test_updater_does_nothing_if_provider_has_no_image(self):
        rom = model.ROM(name='Game1',
                        path='/Path/to/game1',
                        console=fixtures.consoles.flagged)
        shortcut = roms.rom_to_shortcut(rom)

        when(self.mock_provider).image_for_rom(rom).thenReturn(None)

        self.assertFalse(
            grid.has_custom_image(self.user_fixture.get_context(),
                                  shortcuts.shortcut_app_id(shortcut)))
        self.updater.update_rom_artwork(self.user_fixture.get_context(), rom)

        self.assertFalse(
            grid.has_custom_image(self.user_fixture.get_context(),
                                  shortcuts.shortcut_app_id(shortcut)))
Ejemplo n.º 11
0
    def test_updater_sets_image_if_provider_has_one(self):
        rom = model.ROM(name='Game1',
                        path='/Path/to/game1',
                        console=fixtures.consoles.flagged)
        shortcut = roms.rom_to_shortcut(rom)

        (handle, path) = tempfile.mkstemp('.png')
        when(self.mock_provider).image_for_rom(rom).thenReturn(path)

        self.assertFalse(
            grid.has_custom_image(self.user_fixture.get_context(),
                                  shortcuts.shortcut_app_id(shortcut)))
        self.updater.update_rom_artwork(self.user_fixture.get_context(), rom)
        self.assertTrue(
            grid.has_custom_image(self.user_fixture.get_context(),
                                  shortcuts.shortcut_app_id(shortcut)))

        os.remove(path)
Ejemplo n.º 12
0
    "flagged":
    model.Console(
        fullname=roms.ICE_FLAG_TAG,
        shortname='flagged',
        extensions='',
        custom_roms_directory='',
        prefix='',
        icon='',
        images_directory='',
        emulator=emulators.mednafen,
    )
})

roms = DataFixture({
    "banjo_kazooie":
    model.ROM(name='Banjo Kazooie',
              path='/roms/nes/Banjo Kazooie.nes',
              console=consoles.nes),
    "contra":
    model.ROM(name='Contra', path='/roms/nes/Contra.nes',
              console=consoles.nes),
    "megaman":
    model.ROM(name='Megaman',
              path='/roms/nes/Megaman.nes',
              console=consoles.nes),
    "megamanx":
    model.ROM(name='Megaman X',
              path='/roms/snes/Megaman X.snes',
              console=consoles.snes),
})