def test_saveStoredSearch_should_limit_search_collection_before_calling_store(self): sys.modules["__main__"].settings.getSetting.return_value = "0" storage = YouTubeStorage() storage.retrieveSettings = Mock() storage.retrieveSettings.return_value = [ "some_search4", "some_search2", "some_search3", "", "", "", "", "", "", "", "", ] storage.storeSettings = Mock() storage.saveStoredSearch({"search": "some_search1", "old_search": "some_search2"}) assert len(storage.storeSettings.call_args[0][1]) == 10 storage.storeSettings.assert_called_with( {"search": "some_search1", "old_search": "some_search2"}, ["some_search1", "some_search4", "some_search3", "", "", "", "", "", "", ""], )
def test_deleteStoredSearch_should_remove_search_from_list_before_calling_store(self): storage = YouTubeStorage() storage.retrieve = Mock() storage.retrieve.return_value = ["some_search2"] storage.storeSettings = Mock() storage.deleteStoredSearch({"delete": "some_search2"}) storage.storeSettings.assert_called_with({"delete": "some_search2"}, [])
def test_getStoredSearches_should_call_retrieve_to_get_searches(self): storage = YouTubeStorage() storage.retrieveSettings = Mock() storage.retrieveSettings.return_value = ["some_search"] storage.storeSettings = Mock() storage.getStoredSearches({"path": "some_path"}) assert storage.retrieveSettings.call_count > 0
def test_deleteStoredSearch_should_call_executebuiltin(self): storage = YouTubeStorage() storage.retrieve = Mock() storage.retrieve.return_value = ["some_search2"] storage.storeSettings = Mock() storage.deleteStoredSearch({"delete": "some_search2"}) sys.modules["__main__"].xbmc.executebuiltin.assert_called_with("Container.Refresh")
def test_saveStoredSearch_should_exit_cleanly_if_search_is_not_in_params(self): storage = YouTubeStorage() storage.retrieve = Mock() storage.retrieve.return_value = ["some_search2"] storage.storeSettings = Mock() storage.saveStoredSearch({}) assert storage.retrieve.call_count == 0 assert storage.storeSettings.call_count == 0
def test_saveStoredSearch_should_call_getSettings_to_get_max_searches_count(self): sys.modules["__main__"].settings.getSetting.return_value = "0" storage = YouTubeStorage() storage.retrieveSettings = Mock() storage.retrieveSettings.return_value = ["some_search2"] storage.storeSettings = Mock() storage.saveStoredSearch({"search": "some_search1", "old_search": "some_search2"}) sys.modules["__main__"].settings.getSetting.assert_called_with("saved_searches")
def test_deleteStoredSearch_should_call_retrieve_to_get_searches(self): storage = YouTubeStorage() storage.retrieveSettings = Mock() storage.retrieveSettings.return_value = ["some_search1"] storage.storeSettings = Mock() storage.deleteStoredSearch({"delete": "some_search2"}) storage.retrieveSettings.assert_called_with({"delete": "some_search2"}) assert storage.retrieveSettings.call_count == 1
def test_saveStoredSearch_should_call_store_to_save_searches_collection(self): sys.modules["__main__"].settings.getSetting.return_value = "0" storage = YouTubeStorage() storage.retrieveSettings = Mock() storage.retrieveSettings.return_value = ["some_search2"] storage.storeSettings = Mock() storage.saveStoredSearch({"search": "some_search1", "old_search": "some_search2"}) assert storage.storeSettings.call_count > 0
def test_editStoredSearch_should_exit_cleanly_if_search_param_is_missing(self): sys.modules["__main__"].settings.getSetting.return_value = "0" sys.modules["__main__"].common.getUserInput.return_value = "some_search3" storage = YouTubeStorage() storage.retrieve = Mock() storage.retrieve.return_value = ["some_search2"] storage.storeSettings = Mock() storage.editStoredSearch({}) assert storage.storeSettings.call_count == 0 assert storage.retrieve.call_count == 0
def test_editStoredSearch_should_ask_user_for_new_search_phrase(self): sys.modules["__main__"].settings.getSetting.return_value = "0" sys.modules["__main__"].language.return_value = "some_title" sys.modules["__main__"].common.getUserInput.return_value = "some_search3" storage = YouTubeStorage() storage.retrieveSettings = Mock() storage.retrieveSettings.return_value = ["some_search2"] storage.storeSettings = Mock() storage.editStoredSearch({"search": "some_search1"}) sys.modules["__main__"].common.getUserInput.assert_called_with("some_title", "some_search1")
def test_getStoredSearches_should_return_proper_list_structure(self): storage = YouTubeStorage() storage.retrieveSettings = Mock() storage.retrieveSettings.return_value = ["some_search"] storage.storeSettings = Mock() (result, status) = storage.getStoredSearches({"path": "some_path"}) print repr(result) assert result == [ {"path": "some_path", "search": "some_search", "thumbnail": ["some_search"], "Title": "some_search"} ]
def test_saveStoredSearch_should_remove_old_search_from_collection_and_prepend_new_search(self): sys.modules["__main__"].settings.getSetting.return_value = "0" storage = YouTubeStorage() storage.retrieveSettings = Mock() storage.retrieveSettings.return_value = ["some_search4", "some_search2", "some_search3"] storage.storeSettings = Mock() storage.saveStoredSearch({"search": "some_search1", "old_search": "some_search2"}) storage.storeSettings.assert_called_with( {"search": "some_search1", "old_search": "some_search2"}, ["some_search1", "some_search4", "some_search3"] )
def test_editStoredSearch_should_set_store_to_disco_if_editing_disco_searches(self): sys.modules["__main__"].settings.getSetting.return_value = "0" sys.modules["__main__"].language.return_value = "some_title" sys.modules["__main__"].common.getUserInput.return_value = "some_search3" storage = YouTubeStorage() storage.retrieveSettings = Mock() storage.retrieveSettings.return_value = ["some_search2"] storage.storeSettings = Mock() storage.editStoredSearch({"search": "some_search1", "action": "edit_disco"}) assert storage.storeSettings.call_args[0][0].has_key("scraper")
def test_editStoredSearch_should_call_saveStoredSearch(self): sys.modules["__main__"].settings.getSetting.return_value = "0" sys.modules["__main__"].language.return_value = "some_title" sys.modules["__main__"].common.getUserInput.return_value = "some_search3" storage = YouTubeStorage() storage.retrieve = Mock() storage.retrieve.return_value = ["some_search2"] storage.storeSettings = Mock() storage.saveStoredSearch = Mock() storage.editStoredSearch({"search": "some_search1", "action": "edit_disco"}) storage.saveStoredSearch.assert_called_with({"search": "some_search3", "scraper": "search_disco"})
def test_editStoredSearch_should_exit_cleanly_if_search_param_is_missing( self): sys.modules["__main__"].settings.getSetting.return_value = "0" sys.modules[ "__main__"].common.getUserInput.return_value = "some_search3" storage = YouTubeStorage() storage.retrieve = Mock() storage.retrieve.return_value = ["some_search2"] storage.storeSettings = Mock() storage.editStoredSearch({}) assert (storage.storeSettings.call_count == 0) assert (storage.retrieve.call_count == 0)
def test_saveStoredSearch_should_call_store_to_save_searches_collection( self): sys.modules["__main__"].settings.getSetting.return_value = "0" storage = YouTubeStorage() storage.retrieveSettings = Mock() storage.retrieveSettings.return_value = ["some_search2"] storage.storeSettings = Mock() storage.saveStoredSearch({ "search": "some_search1", "old_search": "some_search2" }) assert (storage.storeSettings.call_count > 0)
def test_editStoredSearch_should_ask_user_for_new_search_phrase(self): sys.modules["__main__"].settings.getSetting.return_value = "0" sys.modules["__main__"].language.return_value = "some_title" sys.modules[ "__main__"].common.getUserInput.return_value = "some_search3" storage = YouTubeStorage() storage.retrieveSettings = Mock() storage.retrieveSettings.return_value = ["some_search2"] storage.storeSettings = Mock() storage.editStoredSearch({"search": "some_search1"}) sys.modules["__main__"].common.getUserInput.assert_called_with( 'some_title', 'some_search1')
def test_editStoredSearch_should_set_store_to_searches_if_editing_searches( self): sys.modules["__main__"].settings.getSetting.return_value = "0" sys.modules["__main__"].language.return_value = "some_title" sys.modules[ "__main__"].common.getUserInput.return_value = "some_search3" storage = YouTubeStorage() storage.retrieveSettings = Mock() storage.retrieveSettings.return_value = ["some_search2"] storage.storeSettings = Mock() storage.editStoredSearch({"search": "some_search1"}) assert (storage.storeSettings.call_args[0][0].has_key("feed"))
def test_editStoredSearch_should_remove_old_search_param_before_exiting(self): sys.modules["__main__"].settings.getSetting.return_value = "0" sys.modules["__main__"].language.return_value = "some_title" sys.modules["__main__"].common.getUserInput.return_value = "some_search3" storage = YouTubeStorage() storage.retrieve = Mock() storage.retrieve.return_value = ["some_search2"] storage.storeSettings = Mock() storage.saveStoredSearch = Mock() params = {"search": "some_search1", "action": "edit_disco", "old_search": "some_search4"} storage.editStoredSearch(params) assert params.has_key("old_search") == False
def test_getStoredSearches_should_return_proper_list_structure(self): storage = YouTubeStorage() storage.retrieveSettings = Mock() storage.retrieveSettings.return_value = ["some_search"] storage.storeSettings = Mock() (result, status) = storage.getStoredSearches({"path": "some_path"}) print repr(result) assert (result == [{ 'path': 'some_path', 'search': 'some_search', 'thumbnail': ['some_search'], 'Title': 'some_search' }])
def test_saveStoredSearch_should_call_getSettings_to_get_max_searches_count( self): sys.modules["__main__"].settings.getSetting.return_value = "0" storage = YouTubeStorage() storage.retrieveSettings = Mock() storage.retrieveSettings.return_value = ["some_search2"] storage.storeSettings = Mock() storage.saveStoredSearch({ "search": "some_search1", "old_search": "some_search2" }) sys.modules["__main__"].settings.getSetting.assert_called_with( "saved_searches")
def test_deleteStoredSearch_should_call_unquote_on_delete_param(self): patcher = patch("urllib.unquote_plus") patcher.start() import urllib urllib.unquote_plus.return_value = "some_unquoted_search" storage = YouTubeStorage() storage.retrieve = Mock() storage.retrieve.return_value = ["some_search1"] storage.storeSettings = Mock() storage.deleteStoredSearch({"delete": "some_search2"}) args = urllib.unquote_plus.call_args patcher.stop() assert (args[0][0] == "some_search2")
def test_deleteStoredSearch_should_call_unquote_on_delete_param(self): patcher = patch("urllib.unquote_plus") patcher.start() import urllib urllib.unquote_plus.return_value = "some_unquoted_search" storage = YouTubeStorage() storage.retrieve = Mock() storage.retrieve.return_value = ["some_search1"] storage.storeSettings = Mock() storage.deleteStoredSearch({"delete": "some_search2"}) args = urllib.unquote_plus.call_args patcher.stop() assert args[0][0] == "some_search2"
def test_saveStoredSearch_should_call_unquote_on_search_param(self): sys.modules["__main__"].settings.getSetting.return_value = "0" patcher = patch("urllib.unquote_plus") patcher.start() import urllib urllib.unquote_plus.return_value = "some_unquoted_search" storage = YouTubeStorage() storage.retrieveSettings = Mock() storage.retrieveSettings.return_value = ["some_search1"] storage.storeSettings = Mock() storage.saveStoredSearch({"search": "some_search"}) args = urllib.unquote_plus.call_args patcher.stop() assert (args[0][0] == "some_search")
def test_getStoredSearches_should_call_retrieve_to_get_thumbnail_collection(self): storage = YouTubeStorage() storage.retrieveSettings = Mock() storage.retrieveSettings.return_value = ["some_search"] storage.storeSettings = Mock() storage.getStoredSearches({"path": "some_path"}) assert storage.retrieveSettings.call_args[0][0] == {"path": "some_path"} assert storage.retrieveSettings.call_args[0][1] == "thumbnail" assert storage.retrieveSettings.call_args[0][2] == { "path": "some_path", "search": "some_search", "thumbnail": ["some_search"], "Title": "some_search", } assert storage.retrieveSettings.call_count == 2
def test_saveStoredSearch_should_call_unquote_on_search_param(self): sys.modules["__main__"].settings.getSetting.return_value = "0" patcher = patch("urllib.unquote_plus") patcher.start() import urllib urllib.unquote_plus.return_value = "some_unquoted_search" storage = YouTubeStorage() storage.retrieveSettings = Mock() storage.retrieveSettings.return_value = ["some_search1"] storage.storeSettings = Mock() storage.saveStoredSearch({"search": "some_search"}) args = urllib.unquote_plus.call_args patcher.stop() assert args[0][0] == "some_search"
def test_getStoredSearches_should_call_quote_plus_on_search_items(self): patcher = patch("urllib.quote_plus") patcher.start() import urllib urllib.quote_plus.return_value = "some_quoted_search" storage = YouTubeStorage() storage.retrieveSettings = Mock() storage.retrieveSettings.return_value = ["some_search"] storage.storeSettings = Mock() (result, status) = storage.getStoredSearches({"path": "some_path"}) args = urllib.quote_plus.call_args patcher.stop() assert args[0][0] == "some_search" assert result == [ {"path": "some_path", "search": "some_quoted_search", "thumbnail": ["some_search"], "Title": "some_search"} ]
def test_saveStoredSearch_should_remove_old_search_from_collection_and_prepend_new_search( self): sys.modules["__main__"].settings.getSetting.return_value = "0" storage = YouTubeStorage() storage.retrieveSettings = Mock() storage.retrieveSettings.return_value = [ "some_search4", "some_search2", "some_search3" ] storage.storeSettings = Mock() storage.saveStoredSearch({ "search": "some_search1", "old_search": "some_search2" }) storage.storeSettings.assert_called_with( { "search": "some_search1", "old_search": "some_search2" }, ['some_search1', 'some_search4', 'some_search3'])
def test_editStoredSearch_should_call_saveStoredSearch(self): sys.modules["__main__"].settings.getSetting.return_value = "0" sys.modules["__main__"].language.return_value = "some_title" sys.modules[ "__main__"].common.getUserInput.return_value = "some_search3" storage = YouTubeStorage() storage.retrieve = Mock() storage.retrieve.return_value = ["some_search2"] storage.storeSettings = Mock() storage.saveStoredSearch = Mock() storage.editStoredSearch({ "search": "some_search1", "action": "edit_disco" }) storage.saveStoredSearch.assert_called_with({ 'search': 'some_search3', 'scraper': 'search_disco' })
def test_editStoredSearch_should_set_search_params_before_exiting(self): sys.modules["__main__"].settings.getSetting.return_value = "0" sys.modules["__main__"].language.return_value = "some_title" sys.modules[ "__main__"].common.getUserInput.return_value = "some_search3" storage = YouTubeStorage() storage.retrieve = Mock() storage.retrieve.return_value = ["some_search2"] storage.storeSettings = Mock() storage.saveStoredSearch = Mock() params = { "search": "some_search1", "action": "edit_disco", "old_search": "some_search4" } storage.editStoredSearch(params) assert (params.has_key("search")) assert (params["search"] == "some_search3")
def test_getStoredSearches_should_call_retrieve_to_get_thumbnail_collection( self): storage = YouTubeStorage() storage.retrieveSettings = Mock() storage.retrieveSettings.return_value = ["some_search"] storage.storeSettings = Mock() storage.getStoredSearches({"path": "some_path"}) assert (storage.retrieveSettings.call_args[0][0] == { "path": "some_path" }) assert (storage.retrieveSettings.call_args[0][1] == "thumbnail") assert (storage.retrieveSettings.call_args[0][2] == { 'path': 'some_path', 'search': 'some_search', 'thumbnail': ['some_search'], 'Title': 'some_search' }) assert (storage.retrieveSettings.call_count == 2)
def test_getStoredSearches_should_call_quote_plus_on_search_items(self): patcher = patch("urllib.quote_plus") patcher.start() import urllib urllib.quote_plus.return_value = "some_quoted_search" storage = YouTubeStorage() storage.retrieveSettings = Mock() storage.retrieveSettings.return_value = ["some_search"] storage.storeSettings = Mock() (result, status) = storage.getStoredSearches({"path": "some_path"}) args = urllib.quote_plus.call_args patcher.stop() assert (args[0][0] == "some_search") assert (result == [{ 'path': 'some_path', 'search': 'some_quoted_search', 'thumbnail': ['some_search'], 'Title': 'some_search' }])