def _create_player_from_selected(self) -> None: """Creates player(s) based on the selected items and adds to the queue. If the active menu is the feed menu, then this will create players for all episodes in the selected feed. If the active menu is the episode menu, this will simply create a single player. This method will not clear the queue prior to adding the new player(s), nor will it play the episodes after running. """ if self._active_window == 0: feed = self._feed_menu.item if feed is not None: for episode in self._display.database.episodes(feed): player = Player.create_instance( self._display.AVAILABLE_PLAYERS, str(episode), episode.get_playable(), episode) self._display.queue.add(player) elif self._active_window == 1: episode = self._episode_menu.item if episode is not None: player = Player.create_instance( self._display.AVAILABLE_PLAYERS, str(episode), episode.get_playable(), episode) self._display.queue.add(player)
def _restore_queue(self) -> None: """Recreate players in queue from the database.""" for episode in self.database.queue(): player = Player.create_instance(self.AVAILABLE_PLAYERS, str(episode), episode.get_playable(), episode) self.queue.add(player)
def test_player_create_instance_dep_error_indirect(): Config.data = {'player': ''} SomePlayer.check_dependencies.side_effect = PlayerDependencyError() with pytest.raises(PlayerDependencyError): Player.create_instance(available_players, "t", "p", episode) assert SomePlayer.check_dependencies.call_count == 1
def test_player_create_instance_success_indirect(): Config.data = {'player': ''} Player.create_instance(available_players, "t", "p", episode) SomePlayer.check_dependencies.assert_called = 2 SomePlayer.assert_called_with("t", "p", episode)
def test_player_create_instance_success_direct(): Config.data = {'player': 'someplayer'} Player.create_instance(available_players, "t", "p", episode) assert SomePlayer.check_dependencies.call_count == 1 SomePlayer.assert_called_with("t", "p", episode)