def test_parseVideoList_should_call_xbmcplugin_endOfDirectory_correctly(self):
     sys.modules["__main__"].utils.getThumbnail.return_value = "some_image_path"
     sys.modules["__main__"].settings.getSetting.return_value = 1
     navigation = BlipTVNavigation()
     navigation.addVideoContextMenuItems = Mock()
     navigation.addVideoListItem = Mock()
     navigation.addFolderListItem = Mock()
     
     navigation.parseVideoList({"scraper": "watch_later", "path": "some_path"}, [{"Title": "some_title", "icon": "some_icon", "thumbnail": "some_thumbnail"}, {"Title": "some_title", "icon": "some_icon", "thumbnail": "some_thumbnail", "videoid": "false"}, {"Title": "some_title", "icon": "some_icon", "thumbnail": "some_thumbnail", "next": "true"}])
     
     sys.modules["__main__"].xbmcplugin.endOfDirectory.assert_called_with(cacheToDisc=True, handle=-1, succeeded=True)
 def test_parseVideoList_should_skip_items_where_videoid_is_false(self):
     sys.argv = ["some_path", -1, "some_params"]
     sys.modules["__main__"].utils.getThumbnail.return_value = "some_image_path"
     sys.modules["__main__"].settings.getSetting.return_value = 0
     navigation = BlipTVNavigation()
     navigation.addVideoContextMenuItems = Mock()
     navigation.addVideoListItem = Mock()
     
     navigation.parseVideoList({"user_feed": "some_feed", "path": "some_path"}, [{"Title": "some_title", "icon": "some_icon", "thumbnail": "some_thumbnail"}, {"Title": "some_title", "icon": "some_icon", "thumbnail": "some_thumbnail", "videoid": "false"}, {"Title": "some_title", "icon": "some_icon", "thumbnail": "some_thumbnail"}])
     
     assert(navigation.addVideoListItem.call_count == 2)
 def test_parseVideoList_should_call_xbmc_executebuiltin_if_list_view_is_set(self):
     sys.argv = ["some_path", -1, "some_params"]
     sys.modules["__main__"].utils.getThumbnail.return_value = "some_image_path"
     sys.modules["__main__"].settings.getSetting.return_value = 1
     navigation = BlipTVNavigation()
     navigation.addVideoContextMenuItems = Mock()
     navigation.addVideoListItem = Mock()
     navigation.addFolderListItem = Mock()
     
     navigation.parseVideoList({"scraper": "watch_later", "path": "some_path"}, [{"Title": "some_title", "icon": "some_icon", "thumbnail": "some_thumbnail"}, {"Title": "some_title", "icon": "some_icon", "thumbnail": "some_thumbnail", "videoid": "false"}, {"Title": "some_title", "icon": "some_icon", "thumbnail": "some_thumbnail", "next": "true"}])
     
     sys.modules["__main__"].xbmc.executebuiltin.assert_called_with('Container.SetViewMode(500)')
 def test_parseVideoList_should_call_settings_getSetting_to_get_list_view(self):
     sys.argv = ["some_path", -1, "some_params"]
     sys.modules["__main__"].utils.getThumbnail.return_value = "some_image_path"
     sys.modules["__main__"].settings.getSetting.return_value = 0
     navigation = BlipTVNavigation()
     navigation.addVideoContextMenuItems = Mock()
     navigation.addVideoListItem = Mock()
     navigation.addFolderListItem = Mock()
     
     navigation.parseVideoList({"scraper": "watch_later", "path": "some_path"}, [{"Title": "some_title", "icon": "some_icon", "thumbnail": "some_thumbnail"}, {"Title": "some_title", "icon": "some_icon", "thumbnail": "some_thumbnail", "videoid": "false"}, {"Title": "some_title", "icon": "some_icon", "thumbnail": "some_thumbnail", "next": "true"}])
     
     sys.modules["__main__"].settings.getSetting.assert_called_with("list_view")
 def ttest_parseVideoList_should_call_addVideoListItem_if_item_is_not_next_item(self):
     sys.argv = ["some_path", -1, "some_params"]
     sys.modules["__main__"].utils.getThumbnail.return_value = "some_image_path"
     sys.modules["__main__"].settings.getSetting.return_value = 0
     navigation = BlipTVNavigation()
     navigation.addVideoContextMenuItems = Mock()
     navigation.addVideoListItem = Mock()
     navigation.addFolderListItem = Mock()
     
     navigation.parseVideoList({"scraper": "watch_later", "path": "some_path"}, [{"Title": "some_title", "icon": "some_icon", "thumbnail": "some_thumbnail"}, {"Title": "some_title", "icon": "some_icon", "thumbnail": "some_thumbnail", "videoid": "false"}, {"Title": "some_title", "icon": "some_icon", "thumbnail": "some_thumbnail", "next": "true"}])
     
     navigation.addVideoListItem.assert_called_once_with({'path': 'some_path', 'scraper': 'watch_later'}, {'path': 'some_path', 'icon': 'some_icon', 'index': '1', 'thumbnail': 'some_thumbnail', 'Title': 'some_title'}, 3)
 def test_parseVideoList_should_call_xbmcplugin_addSortMethod_for_valid_sort_methods(self):
     sys.argv = ["some_path", -1, "some_params"]
     sys.modules["__main__"].utils.getThumbnail.return_value = "some_image_path"
     sys.modules["__main__"].settings.getSetting.return_value = 1
     navigation = BlipTVNavigation()
     navigation.addVideoContextMenuItems = Mock()
     navigation.addVideoListItem = Mock()
     navigation.addFolderListItem = Mock()
     
     navigation.parseVideoList({"scraper": "watch_later", "path": "some_path"}, [{"Title": "some_title", "icon": "some_icon", "thumbnail": "some_thumbnail"}, {"Title": "some_title", "icon": "some_icon", "thumbnail": "some_thumbnail", "videoid": "false"}, {"Title": "some_title", "icon": "some_icon", "thumbnail": "some_thumbnail", "next": "true"}])
     
     sys.modules["__main__"].xbmcplugin.addSortMethod.assert_any_call(handle=-1, sortMethod=sys.modules["__main__"].xbmcplugin.SORT_METHOD_UNSORTED)
     sys.modules["__main__"].xbmcplugin.addSortMethod.assert_any_call(handle=-1, sortMethod=sys.modules["__main__"].xbmcplugin.SORT_METHOD_LABEL)
     sys.modules["__main__"].xbmcplugin.addSortMethod.assert_any_call(handle=-1, sortMethod=sys.modules["__main__"].xbmcplugin.SORT_METHOD_VIDEO_RATING)
     sys.modules["__main__"].xbmcplugin.addSortMethod.assert_any_call(handle=-1, sortMethod=sys.modules["__main__"].xbmcplugin.SORT_METHOD_DATE)
     sys.modules["__main__"].xbmcplugin.addSortMethod.assert_any_call(handle=-1, sortMethod=sys.modules["__main__"].xbmcplugin.SORT_METHOD_PROGRAM_COUNT)
     sys.modules["__main__"].xbmcplugin.addSortMethod.assert_any_call(handle=-1, sortMethod=sys.modules["__main__"].xbmcplugin.SORT_METHOD_VIDEO_RUNTIME)
     sys.modules["__main__"].xbmcplugin.addSortMethod.assert_any_call(handle=-1, sortMethod=sys.modules["__main__"].xbmcplugin.SORT_METHOD_GENRE)
    def test_list_should_call_parseVideoList_if_list_was_successfull_and_folder_is_not_in_params(self):
        sys.modules["__main__"].scraper.scrape.return_value = ["videos"]
        navigation = BlipTVNavigation()
        navigation.parseVideoList = Mock()
        navigation.parseFolderList = Mock()
        navigation.showListingError = Mock()

        navigation.list({"scraper": "some_scraper"})

        navigation.parseVideoList.assert_called_with({"scraper": "some_scraper"}, ["videos"])
    def test_list_should_call_storage_list_if_store_is_in_params(self):
        sys.modules["__main__"].storage.list.return_value = ([], 200)
        navigation = BlipTVNavigation()
        navigation.parseVideoList = Mock()
        navigation.parseFolderList = Mock()
        navigation.showListingError = Mock()

        navigation.list({"store": "some_store"})

        sys.modules["__main__"].storage.list.assert_called_with({"store": "some_store"})
    def test_list_should_call_showListingError_on_listing_error(self):
        sys.modules["__main__"].scraper.scrape.return_value = []
        sys.modules["__main__"].language.return_value = "some_string"
        navigation = BlipTVNavigation()
        navigation.parseVideoList = Mock()
        navigation.parseFolderList = Mock()
        navigation.showListingError = Mock()

        navigation.list({"scraper": "staff_picks"})

        navigation.showListingError.assert_any_call({"scraper": "staff_picks"})
    def test_list_should_ask_user_for_input_if_scraper_is_show_search_and_search_is_missing_from_params(self):
        sys.modules["__main__"].scraper.scrape.return_value = ([], 200)
        sys.modules["__main__"].language.return_value = "some_string"
        navigation = BlipTVNavigation()
        navigation.parseVideoList = Mock()
        navigation.parseFolderList = Mock()
        navigation.showListingError = Mock()

        navigation.list({"scraper": "show_search"})

        sys.modules["__main__"].common.getUserInput.assert_called_with("some_string", "")