Example #1
0
    def test_addToPlaylist_should_call_core_add_to_playlist_if_user_has_selected_playlist(
            self):
        sys.modules["__main__"].xbmcgui.Dialog().select.return_value = 1
        sys.modules["__main__"].feeds.listAll.return_value = ([{
            "Title":
            "PlayList1",
            "playlist":
            "playlist1"
        }, {
            "Title":
            "PlayList2",
            "playlist":
            "playlist2"
        }])
        control = YouTubePlaylistControl()
        control.createPlayList = Mock()

        control.addToPlaylist({})

        sys.modules["__main__"].core.add_to_playlist.assert_called_with({
            'user_feed':
            'playlists',
            'login':
            '******',
            'playlist':
            'playlist1',
            'folder':
            'true'
        })
 def test_deletePlaylist_should_call_core_delete_playlist(self):
     sys.modules["__main__"].core.del_playlist.return_value = ("",200)
     control = YouTubePlaylistControl()
     
     control.deletePlaylist({"playlist":"some_playlist"})
     
     sys.modules["__main__"].core.del_playlist.assert_called_with({"playlist":"some_playlist"})
 def test_addToPlaylist_should_call_core_add_to_playlist_if_playlist_is_in_params(self):
     control = YouTubePlaylistControl()
     control.createPlayList = Mock()
     
     control.addToPlaylist({"playlist":"playlist1"})
     
     sys.modules["__main__"].core.add_to_playlist.assert_called_with({'playlist': 'playlist1'})
Example #4
0
    def test_playAll_should_call_getDiscoSearch_if_scraper_is_disco_search_in_params(self):
        control = YouTubePlaylistControl()
        sys.modules["__main__"].scraper.searchDisco.return_value = ("", 200)
        
        control.playAll({"scraper":"search_disco", "search":"some_search"})

        sys.modules["__main__"].scraper.searchDisco.assert_called_with({"scraper":"search_disco", "search":"some_search", "fetch_all" : "true"})
    def test_removeFromPlaylist_should_call_core_remove_from_playlist(self):
        sys.modules["__main__"].core.remove_from_playlist.return_value = ("",200)
        control = YouTubePlaylistControl()

        control.removeFromPlaylist({"playlist_entry_id":"some_playlist_entry_id", "playlist":"some_playlist"})
        
        sys.modules["__main__"].core.remove_from_playlist.assert_called_with({"playlist_entry_id":"some_playlist_entry_id", "playlist":"some_playlist"})
 def test_removeFromPlaylist_should_call_xbmc_execute_builtin_on_success(self):
     control = YouTubePlaylistControl()
     sys.modules["__main__"].core.remove_from_playlist.return_value = ("",200)
     
     control.removeFromPlaylist({"playlist_entry_id":"some_playlist_entry_id", "playlist":"some_playlist"})
     
     sys.modules["__main__"].xbmc.executebuiltin.assert_called_with("Container.Refresh")
Example #7
0
    def test_removeFromPlaylist_should_call_core_remove_from_playlist(self):
        sys.modules["__main__"].core.remove_from_playlist.return_value = ("",200)
        control = YouTubePlaylistControl()

        control.removeFromPlaylist({"playlist_entry_id":"some_playlist_entry_id", "playlist":"some_playlist"})
        
        sys.modules["__main__"].core.remove_from_playlist.assert_called_with({"playlist_entry_id":"some_playlist_entry_id", "playlist":"some_playlist"})
Example #8
0
 def test_addToPlaylist_should_call_core_add_to_playlist_if_playlist_is_in_params(self):
     control = YouTubePlaylistControl()
     control.createPlayList = Mock()
     
     control.addToPlaylist({"playlist":"playlist1"})
     
     sys.modules["__main__"].core.add_to_playlist.assert_called_with({'playlist': 'playlist1'})
 def test_deletePlaylist_should_call_xbmc_execute_builtin_on_success(self):
     sys.modules["__main__"].core.del_playlist.return_value = ("",200)
     control = YouTubePlaylistControl()
     
     control.deletePlaylist({"playlist":"some_playlist_id"})
     
     sys.modules["__main__"].xbmc.executebuiltin.assert_called_with("Container.Refresh")	
Example #10
0
    def test_playAll_should_not_call_xbmc_player_if_params_is_empty(self):
        control = YouTubePlaylistControl()

        control.playAll({})

        assert (sys.modules["__main__"].xbmc.Player.call_count == 0)
        assert (sys.modules["__main__"].xbmc.Player().call_count == 0)
Example #11
0
 def test_deletePlaylist_should_call_core_delete_playlist(self):
     sys.modules["__main__"].core.del_playlist.return_value = ("",200)
     control = YouTubePlaylistControl()
     
     control.deletePlaylist({"playlist":"some_playlist"})
     
     sys.modules["__main__"].core.del_playlist.assert_called_with({"playlist":"some_playlist"})
Example #12
0
 def test_deletePlaylist_should_exit_cleanly_if_playlist_is_missing(self):
     sys.modules["__main__"].core.remove_from_playlist.return_value = ("",200)
     control = YouTubePlaylistControl()
     
     control.deletePlaylist({})
     
     assert(sys.modules["__main__"].core.del_playlist.call_count == 0)
Example #13
0
    def test_playAll_should_queue_all_items_in_result_list_after_provided_videoid(
            self):
        playlist_value = Mock()
        sys.modules["__main__"].xbmc.PlayList.return_value = playlist_value
        control = YouTubePlaylistControl()
        control.getUserFeed = Mock()
        control.getUserFeed.return_value = [{
            "Title": "someTitle1",
            "videoid": "some_id1",
            "thumbnail": "some_thumbnail1"
        }, {
            "Title": "someTitle2",
            "videoid": "some_id2",
            "thumbnail": "some_thumbnail2"
        }, {
            "Title": "someTitle3",
            "videoid": "some_id3",
            "thumbnail": "some_thumbnail3"
        }, {
            "Title": "someTitle4",
            "videoid": "some_id4",
            "thumbnail": "some_thumbnail4"
        }]

        control.playAll({
            "user_feed": "playlist",
            "playlist": "someid",
            "shuffle": "true",
            "videoid": "some_id3"
        })

        assert (playlist_value.add.call_count == 2)
    def test_playAll_should_call_getDiscoSearch_if_scraper_is_disco_search_in_params(self):
        control = YouTubePlaylistControl()
        sys.modules["__main__"].scraper.searchDisco.return_value = ("", 200)
        
        control.playAll({"scraper":"search_disco", "search":"some_search"})

        sys.modules["__main__"].scraper.searchDisco.assert_called_with({"scraper":"search_disco", "search":"some_search", "fetch_all" : "true"})
Example #15
0
    def test_getUserFeed_should_exit_cleanly_if_contact_is_missing(self):
        sys.modules["__main__"].feeds.listAll.return_value = ("", 200)
        control = YouTubePlaylistControl()

        control.getUserFeed({"user_feed": "favorites"})

        assert (sys.modules["__main__"].feeds.listAll.call_count == 0)
Example #16
0
    def test_getUserFeed_should_exit_cleanly_if_user_feed_is_playlist_and_playlist_id_is_missing_from_params(
            self):
        control = YouTubePlaylistControl()

        control.getUserFeed({"user_feed": "playlist"})

        assert (sys.modules["__main__"].feeds.listAll.call_count == 0)
Example #17
0
    def test_queueVideo_should_handle_a_list_of_video_ids_seperated_by_a_comma(
            self):
        playlist_value = Mock()
        sys.modules["__main__"].xbmc.PlayList.return_value = playlist_value
        sys.modules["__main__"].core.getBatchDetails.return_value = ({
            "apierror":
            ""
        }, 303)
        control = YouTubePlaylistControl()
        control.getPlayList = Mock()
        control.getPlayList.return_value = [{
            "Title": "someTitle1",
            "videoid": "some_id1",
            "thumbnail": "some_thumbnail1"
        }, {
            "Title": "someTitle2",
            "videoid": "some_id2",
            "thumbnail": "some_thumbnail2"
        }]

        control.queueVideo({"videoid": "someid1,someid2,someid3"})

        sys.modules["__main__"].core.getBatchDetails.assert_called_with(
            ['someid1', 'someid2', 'someid3'],
            {'videoid': 'someid1,someid2,someid3'})
 def test_getUserFeed_should_exit_cleanly_if_contact_is_missing(self):
     sys.modules["__main__"].feeds.listAll.return_value = ("",200)
     control = YouTubePlaylistControl()
     
     control.getUserFeed({"user_feed":"favorites"})
     
     assert(sys.modules["__main__"].feeds.listAll.call_count == 0)
 def test_deletePlaylist_should_exit_cleanly_if_playlist_is_missing(self):
     sys.modules["__main__"].core.remove_from_playlist.return_value = ("",200)
     control = YouTubePlaylistControl()
     
     control.deletePlaylist({})
     
     assert(sys.modules["__main__"].core.del_playlist.call_count == 0)
Example #20
0
 def test_removeFromPlaylist_should_call_xbmc_execute_builtin_on_success(self):
     control = YouTubePlaylistControl()
     sys.modules["__main__"].core.remove_from_playlist.return_value = ("",200)
     
     control.removeFromPlaylist({"playlist_entry_id":"some_playlist_entry_id", "playlist":"some_playlist"})
     
     sys.modules["__main__"].xbmc.executebuiltin.assert_called_with("Container.Refresh")
 def test_playAll_should_not_call_xbmc_player_if_params_is_empty(self):
     control = YouTubePlaylistControl()
     
     control.playAll({})
     
     assert(sys.modules["__main__"].xbmc.Player.call_count == 0)
     assert(sys.modules["__main__"].xbmc.Player().call_count == 0)
Example #22
0
 def test_deletePlaylist_should_call_xbmc_execute_builtin_on_success(self):
     sys.modules["__main__"].core.del_playlist.return_value = ("",200)
     control = YouTubePlaylistControl()
     
     control.deletePlaylist({"playlist":"some_playlist_id"})
     
     sys.modules["__main__"].xbmc.executebuiltin.assert_called_with("Container.Refresh")	
Example #23
0
 def test_playAll_should_call_getLikedVideos_if_scraper_is_liked_videos_in_params(self):
     control = YouTubePlaylistControl()
     control.getLikedVideos = Mock()
     control.getLikedVideos.return_value = ("",200)
     
     control.playAll({"scraper":"liked_videos"})
     
     control.getLikedVideos.assert_called_with({"scraper":"liked_videos", 'fetch_all': 'true'})
Example #24
0
    def test_removeFromPlaylist_should_exit_cleanly_if_playlist_or_playlist_entry_id_is_missing(
            self):
        control = YouTubePlaylistControl()

        control.removeFromPlaylist({})

        assert (
            sys.modules["__main__"].core.remove_from_playlist.call_count == 0)
Example #25
0
 def test_getLikedVideos_should_call_core_getBatchDetails_if_scraper_succeded(self):
     sys.modules["__main__"].scraper.scrapeUserLikedVideos.return_value = ("",200)
     sys.modules["__main__"].core.getBatchDetails.return_value = ("",200)
     control = YouTubePlaylistControl()
     
     control.getLikedVideos({"login":"******","scraper":"liked_videos"})
     
     sys.modules["__main__"].scraper.scrapeUserLikedVideos.assert_called_with({"login":"******","scraper":"liked_videos"})
 def test_deletePlaylist_should_show_error_message_if_delete_call_failed(self):
     sys.modules["__main__"].core.del_playlist.return_value = ("fail",303)
     sys.modules["__main__"].language.return_value = "my_string"
     control = YouTubePlaylistControl()
     
     control.deletePlaylist({"playlist":"some_playlist"})
     
     sys.modules["__main__"].utils.showErrorMessage.assert_called_with("my_string","fail",303)
Example #27
0
    def test_getLikedVideos_should_exit_cleanly_if_scraper_or_login_is_not_in_params(
            self):
        control = YouTubePlaylistControl()

        control.getLikedVideos({})

        assert (sys.modules["__main__"].scraper.scrapeUserLikedVideos.
                call_count == 0)
Example #28
0
 def test_getUserFeed_should_call_core_list_all_with_correct_params(self):
     sys.modules["__main__"].feeds.listAll.return_value = ("",200)
     control = YouTubePlaylistControl()
     
     control.getUserFeed({"contact":"some_contact", "user_feed":"favorites"})
     
     assert(sys.modules["__main__"].feeds.listAll.call_count == 1)
     sys.modules["__main__"].feeds.listAll.assert_called_with({"user_feed":"favorites","contact":"some_contact"})
Example #29
0
 def test_playAll_should_call_getUserFeed_if_user_feed_is_subscriptions_in_params(self):
     control = YouTubePlaylistControl()
     control.getUserFeed = Mock()
     control.getUserFeed.return_value = ""
     
     control.playAll({"user_feed":"newsubscriptions"})
     
     control.getUserFeed.assert_called_with({"user_feed":"newsubscriptions", 'login':"******", 'fetch_all': 'true'})
Example #30
0
 def test_deletePlaylist_should_show_error_message_if_delete_call_failed(self):
     sys.modules["__main__"].core.del_playlist.return_value = ("fail",303)
     sys.modules["__main__"].language.return_value = "my_string"
     control = YouTubePlaylistControl()
     
     control.deletePlaylist({"playlist":"some_playlist"})
     
     sys.modules["__main__"].utils.showErrorMessage.assert_called_with("my_string","fail",303)
 def test_playAll_should_call_getUserFeed_if_user_feed_is_playlist_in_params(self):
     control = YouTubePlaylistControl()
     control.getUserFeed = Mock()
     control.getUserFeed.return_value = ""
     
     control.playAll({"user_feed":"playlist", "playlist":"someid"})
     
     control.getUserFeed.assert_called_with({"playlist":"someid", "user_feed":"playlist",'fetch_all': 'true'})
Example #32
0
 def test_playAll_should_call_getUserFeed_if_user_feed_is_playlist_in_params(self):
     control = YouTubePlaylistControl()
     control.getUserFeed = Mock()
     control.getUserFeed.return_value = ""
     
     control.playAll({"user_feed":"playlist", "playlist":"someid"})
     
     control.getUserFeed.assert_called_with({"playlist":"someid", "user_feed":"playlist",'fetch_all': 'true', "login":"******"})
 def test_playAll_should_call_getUserFeed_if_user_feed_is_subscriptions_in_params(self):
     control = YouTubePlaylistControl()
     control.getUserFeed = Mock()
     control.getUserFeed.return_value = ""
     
     control.playAll({"user_feed":"newsubscriptions"})
     
     control.getUserFeed.assert_called_with({"user_feed":"newsubscriptions", 'login':"******", 'fetch_all': 'true'})
Example #34
0
 def test_addToPlaylist_should_call_list_all_if_playlist_is_not_in_params(self):
     sys.modules["__main__"].feeds.listAll.return_value = ([])
     control = YouTubePlaylistControl()
     
     control.addToPlaylist({})
     
     sys.modules["__main__"].feeds.listAll.assert_called_with({'user_feed': 'playlists', 'login': '******', 'folder': 'true'})
     assert(sys.modules["__main__"].feeds.listAll.call_count == 1)
Example #35
0
    def test_getYouTubeTop100_should_call_getBatchDetails(self):
        sys.modules["__main__"].scraper.scrapeYouTubeTop100.return_value = ("",200)
        sys.modules["__main__"].core.getBatchDetails.return_value = ("",200)
        control = YouTubePlaylistControl()
        
        control.getYouTubeTop100({})

        assert(sys.modules["__main__"].core.getBatchDetails.call_count == 1)
 def test_playAll_should_call_getLikedVideos_if_scraper_is_liked_videos_in_params(self):
     control = YouTubePlaylistControl()
     control.getLikedVideos = Mock()
     control.getLikedVideos.return_value = ("",200)
     
     control.playAll({"scraper":"liked_videos"})
     
     control.getLikedVideos.assert_called_with({"scraper":"liked_videos", 'fetch_all': 'true'})
 def test_getUserFeed_should_call_core_list_all_with_correct_params(self):
     sys.modules["__main__"].feeds.listAll.return_value = ("",200)
     control = YouTubePlaylistControl()
     
     control.getUserFeed({"contact":"some_contact", "user_feed":"favorites"})
     
     assert(sys.modules["__main__"].feeds.listAll.call_count == 1)
     sys.modules["__main__"].feeds.listAll.assert_called_with({"user_feed":"favorites","contact":"some_contact"})
 def test_addToPlaylist_should_call_list_all_if_playlist_is_not_in_params(self):
     sys.modules["__main__"].feeds.listAll.return_value = ([])
     control = YouTubePlaylistControl()
     
     control.addToPlaylist({})
     
     sys.modules["__main__"].feeds.listAll.assert_called_with({'user_feed': 'playlists', 'login': '******', 'folder': 'true'})
     assert(sys.modules["__main__"].feeds.listAll.call_count == 1)
 def test_getLikedVideos_should_call_core_getBatchDetails_if_scraper_succeded(self):
     sys.modules["__main__"].scraper.scrapeUserLikedVideos.return_value = ("",200)
     sys.modules["__main__"].core.getBatchDetails.return_value = ("",200)
     control = YouTubePlaylistControl()
     
     control.getLikedVideos({"login":"******","scraper":"liked_videos"})
     
     sys.modules["__main__"].scraper.scrapeUserLikedVideos.assert_called_with({"login":"******","scraper":"liked_videos"})
    def test_getYouTubeTop100_should_call_getBatchDetails(self):
        sys.modules["__main__"].scraper.scrapeYouTubeTop100.return_value = ("",200)
        sys.modules["__main__"].core.getBatchDetails.return_value = ("",200)
        control = YouTubePlaylistControl()
        
        control.getYouTubeTop100({})

        assert(sys.modules["__main__"].core.getBatchDetails.call_count == 1)
 def test_addToPlaylist_should_call_core_add_to_playlist_if_user_has_selected_playlist(self):
     sys.modules["__main__"].xbmcgui.Dialog().select.return_value = 1
     sys.modules["__main__"].feeds.listAll.return_value = ([{"Title":"PlayList1","playlist":"playlist1"},{"Title":"PlayList2","playlist":"playlist2"}])
     control = YouTubePlaylistControl()
     control.createPlayList = Mock()
     
     control.addToPlaylist({})
     
     sys.modules["__main__"].core.add_to_playlist.assert_called_with({'user_feed': 'playlists', 'login': '******', 'playlist': 'playlist1', 'folder': 'true'})
Example #42
0
    def test_createPlayList_should_not_call_addPlaylist_if_user_cancels(self):
        sys.modules["__main__"].common.getUserInput.return_value = ""
        sys.modules["__main__"].xbmcgui.Dialog().select.return_value = 1
        sys.modules["__main__"].language.return_value = "my_string"
        control = YouTubePlaylistControl()

        control.createPlaylist({})

        assert (sys.modules["__main__"].core.add_playlist.call_count == 0)
Example #43
0
    def test_getUserFeed_should_call_feeds_list_all(self):
        control = YouTubePlaylistControl()

        control.getUserFeed({
            "user_feed": "playlist",
            "playlist": "some_playlist"
        })

        assert (sys.modules["__main__"].feeds.listAll.call_count > 0)
Example #44
0
 def test_createPlayList_should_call_addPlaylist_if_user_provided_playlist_name(self):
     sys.modules["__main__"].common.getUserInput.return_value = "my_playlist_name"
     sys.modules["__main__"].xbmcgui.Dialog().select.return_value = 1
     sys.modules["__main__"].language.return_value = "my_string"
     control = YouTubePlaylistControl()
     
     control.createPlaylist({})
     
     sys.modules["__main__"].core.add_playlist.assert_called_with({"title":"my_playlist_name"})
 def test_createPlayList_should_not_call_addPlaylist_if_user_cancels(self):
     sys.modules["__main__"].common.getUserInput.return_value = ""
     sys.modules["__main__"].xbmcgui.Dialog().select.return_value = 1
     sys.modules["__main__"].language.return_value = "my_string"
     control = YouTubePlaylistControl()
     
     control.createPlaylist({})
     
     assert(sys.modules["__main__"].core.add_playlist.call_count == 0)
 def test_createPlayList_should_call_addPlaylist_if_user_provided_playlist_name(self):
     sys.modules["__main__"].common.getUserInput.return_value = "my_playlist_name"
     sys.modules["__main__"].xbmcgui.Dialog().select.return_value = 1
     sys.modules["__main__"].language.return_value = "my_string"
     control = YouTubePlaylistControl()
     
     control.createPlaylist({})
     
     sys.modules["__main__"].core.add_playlist.assert_called_with({"title":"my_playlist_name"})
 def test_createPlayList_should_ask_user_for_input(self):
     sys.modules["__main__"].common.getUserInput.return_value = ""
     sys.modules["__main__"].xbmcgui.Dialog().select.return_value = 1
     sys.modules["__main__"].language.return_value = "my_string"
     control = YouTubePlaylistControl()
     
     control.createPlaylist({})
     
     sys.modules["__main__"].common.getUserInput.assert_called_with("my_string")
     sys.modules["__main__"].language.assert_called_with(30529)
Example #48
0
    def test_addToPlaylist_should_ask_user_for_playlist_if_playlist_is_not_in_params(self):
        sys.modules["__main__"].feeds.listAll.return_value = ([{"Title":"PlayList1"},{"Title":"PlayList2"}])
        sys.modules["__main__"].xbmcgui.Dialog().select.return_value = 0
        control = YouTubePlaylistControl()
        control.createPlayList = Mock()

        control.addToPlaylist({})
        
        assert(sys.modules["__main__"].xbmcgui.Dialog.call_count == 2)
        assert(sys.modules["__main__"].xbmcgui.Dialog().select.call_count == 1)
Example #49
0
 def test_createPlayList_should_ask_user_for_input(self):
     sys.modules["__main__"].common.getUserInput.return_value = ""
     sys.modules["__main__"].xbmcgui.Dialog().select.return_value = 1
     sys.modules["__main__"].language.return_value = "my_string"
     control = YouTubePlaylistControl()
     
     control.createPlaylist({})
     
     sys.modules["__main__"].common.getUserInput.assert_called_with("my_string")
     sys.modules["__main__"].language.assert_called_with(30529)
    def test_addToPlaylist_should_ask_user_for_playlist_if_playlist_is_not_in_params(self):
        sys.modules["__main__"].feeds.listAll.return_value = ([{"Title":"PlayList1"},{"Title":"PlayList2"}])
        sys.modules["__main__"].xbmcgui.Dialog().select.return_value = 0
        control = YouTubePlaylistControl()
        control.createPlayList = Mock()

        control.addToPlaylist({})
        
        assert(sys.modules["__main__"].xbmcgui.Dialog.call_count == 2)
        assert(sys.modules["__main__"].xbmcgui.Dialog().select.call_count == 1)
Example #51
0
 def test_playAll_should_call_xbmc_player_stop_if_player_is_playing(self):
     control = YouTubePlaylistControl()
     control.getUserFeed = Mock()
     control.getUserFeed.return_value = [{"Title":"someTitle", "videoid":"some_id","thumbnail":"some_thumbnail"}]
     
     control.playAll({"user_feed":"playlist", "playlist":"someid"})
     
     sys.modules["__main__"].xbmc.Player.assert_called_with()
     sys.modules["__main__"].xbmc.Player().isPlaying.assert_called_with()
     sys.modules["__main__"].xbmc.Player().stop.assert_called_with()
Example #52
0
 def test_playAll_should_call_xbmc_PlayList_clear_if_results_is_not_empty(self):
     playlist_value = Mock()
     sys.modules["__main__"].xbmc.PlayList.return_value = playlist_value
     control = YouTubePlaylistControl()
     control.getUserFeed = Mock()
     control.getUserFeed.return_value = [{"Title":"someTitle", "videoid":"some_id","thumbnail":"some_thumbnail"}]
     
     control.playAll({"user_feed":"playlist", "playlist":"someid"})
     
     playlist_value.clear.assert_called_with()
 def test_playAll_should_queue_all_items_in_result_list(self):
     playlist_value = Mock()
     sys.modules["__main__"].xbmc.PlayList.return_value = playlist_value
     control = YouTubePlaylistControl()
     control.getUserFeed = Mock()
     control.getUserFeed.return_value = [{"Title":"someTitle1", "videoid":"some_id1","thumbnail":"some_thumbnail1"},{"Title":"someTitle2", "videoid":"some_id2","thumbnail":"some_thumbnail2"}]
     
     control.playAll({"user_feed":"playlist","playlist":"someid","shuffle":"true"})
     
     assert(playlist_value.add.call_count == 2)
 def test_playAll_should_call_xbmc_PlayList_clear_if_results_is_not_empty(self):
     playlist_value = Mock()
     sys.modules["__main__"].xbmc.PlayList.return_value = playlist_value
     control = YouTubePlaylistControl()
     control.getUserFeed = Mock()
     control.getUserFeed.return_value = [{"Title":"someTitle", "videoid":"some_id","thumbnail":"some_thumbnail"}]
     
     control.playAll({"user_feed":"playlist", "playlist":"someid"})
     
     playlist_value.clear.assert_called_with()
 def test_playAll_should_start_playback_of_playlist_if_result_list_is_not_empty(self):
     playlist_value = Mock()
     sys.modules["__main__"].xbmc.PlayList.return_value = playlist_value
     control = YouTubePlaylistControl()
     control.getUserFeed = Mock()
     control.getUserFeed.return_value = [{"Title":"someTitle1", "videoid":"some_id1","thumbnail":"some_thumbnail1"},{"Title":"someTitle2", "videoid":"some_id2","thumbnail":"some_thumbnail2"}]
     
     control.playAll({"user_feed":"playlist", "playlist":"someid"})
     
     sys.modules["__main__"].xbmc.executebuiltin.assert_called_with('playlist.playoffset(video , 0)')
 def test_playAll_should_call_xbmc_player_stop_if_player_is_playing(self):
     control = YouTubePlaylistControl()
     control.getUserFeed = Mock()
     control.getUserFeed.return_value = [{"Title":"someTitle", "videoid":"some_id","thumbnail":"some_thumbnail"}]
     
     control.playAll({"user_feed":"playlist", "playlist":"someid"})
     
     sys.modules["__main__"].xbmc.Player.assert_called_with()
     sys.modules["__main__"].xbmc.Player().isPlaying.assert_called_with()
     sys.modules["__main__"].xbmc.Player().stop.assert_called_with()
 def test_queueVideo_should_call_get_batch_details_for_the_video_list(self):
     playlist_value = Mock()
     sys.modules["__main__"].xbmc.PlayList.return_value = playlist_value
     sys.modules["__main__"].core.getBatchDetails.return_value = ({"apierror":""},303)
     control = YouTubePlaylistControl()
     control.getPlayList = Mock()
     control.getPlayList.return_value = [{"Title":"someTitle1", "videoid":"some_id1","thumbnail":"some_thumbnail1"},{"Title":"someTitle2", "videoid":"some_id2","thumbnail":"some_thumbnail2"}]
     
     control.queueVideo({"videoid":"someid1,someid2,someid3"})
     
     sys.modules["__main__"].core.getBatchDetails.assert_called_with(['someid1', 'someid2', 'someid3'], {'videoid': 'someid1,someid2,someid3'})        
 def test_queueVideo_should_show_error_message_if_get_batch_details_fails(self):
     playlist_value = Mock()
     sys.modules["__main__"].xbmc.PlayList.return_value = playlist_value
     sys.modules["__main__"].language.return_value = ""
     sys.modules["__main__"].core.getBatchDetails.return_value = ([],303)
     control = YouTubePlaylistControl()
     control.getPlayList = Mock()
     control.getPlayList.return_value = [{"Title":"someTitle1", "videoid":"some_id1","thumbnail":"some_thumbnail1"},{"Title":"someTitle2", "videoid":"some_id2","thumbnail":"some_thumbnail2"}]
     
     control.queueVideo({"videoid":"someid1,someid2,someid3"})
     
     sys.modules["__main__"].utils.showErrorMessage.assert_called_with("","apierror",303)
 def test_queueVideo_should_correctly_queue_all_items_in_result_list(self):
     playlist_value = Mock()
     sys.modules["__main__"].xbmc.PlayList.return_value = playlist_value
     sys.modules["__main__"].language.return_value = ""
     sys.modules["__main__"].core.getBatchDetails.return_value = ([{"Title":"someTitle1","videoid":"some_id1", "thumbnail":"thumbnail1","video_url":"some_url1"}, {"Title":"someTitle1","videoid":"some_id1", "thumbnail":"thumbnail1","video_url":"some_url1"}, {"Title":"someTitle1","videoid":"some_id1", "thumbnail":"thumbnail1","video_url":"some_url1"}], 200)
     sys.modules["__main__"].common.makeAscii.return_value = ""
     control = YouTubePlaylistControl()
     control.getPlayList = Mock()
     control.getPlayList.return_value = [{"Title":"someTitle1", "videoid":"some_id1","thumbnail":"some_thumbnail1"},{"Title":"someTitle2", "videoid":"some_id2","thumbnail":"some_thumbnail2"}]
     
     control.queueVideo({"videoid":"someid1,someid2,someid3"})
     
     assert(playlist_value.add.call_count == 3)
 def test_removeFromPlaylist_should_exit_cleanly_if_playlist_or_playlist_entry_id_is_missing(self):
     control = YouTubePlaylistControl()
     
     control.removeFromPlaylist({})
     
     assert(sys.modules["__main__"].core.remove_from_playlist.call_count == 0)