def test_getStorageKey_should_call_getThumbnailStorageKey_if_type_is_thumbnail(self): storage = YouTubeStorage() storage._getThumbnailStorageKey = Mock() result = storage.getStorageKey({"some_param": "param_value"}, "thumbnail") storage._getThumbnailStorageKey.assert_called_with({"some_param": "param_value"}, {})
def test_getStorageKey_should_call_getViewModeStorageKey_if_type_is_viewmode(self): storage = YouTubeStorage() storage._getViewModeStorageKey = Mock() result = storage.getStorageKey({"some_param": "param_value"}, "viewmode") storage._getViewModeStorageKey.assert_called_with({"some_param": "param_value"}, {})
def test_store_should_call_getStorageKey_to_fetch_correct_storage_key(self): storage = YouTubeStorage() storage.getStorageKey = Mock() result = storage.store({"store": "pokeystore"}) storage.getStorageKey.assert_called_with({"store": "pokeystore"}, "", {})
def test_getStorageKey_should_call_getResultSetStorageKey_if_type_is_not_set(self): storage = YouTubeStorage() storage._getResultSetStorageKey = Mock() result = storage.getStorageKey({"some_param": "param_value"}) storage._getResultSetStorageKey.assert_called_with({"some_param": "param_value"})
def test_retrieveResultSet_should_evaluate_content_from_sql_get(self): storage = YouTubeStorage() sys.modules["__main__"].cache.get.return_value = "['some_value']" result = storage.retrieveResultSet("some_key") assert result == ["some_value"]
def test_getVideoIdStatusFromCache_should_set_overlay_information_on_requested(self): storage = YouTubeStorage() sys.modules["__main__"].cache.getMulti.return_value = ["2"] result = storage.getVideoIdStatusFromCache("some_id", [{"videoid": "vid1", "Overlay": "1"}]) assert result[0]["Overlay"] == "2"
def test_getVideoIdStatusFromCache_should_not_request_information_for_items_without_a_videoid(self): storage = YouTubeStorage() sys.modules["__main__"].cache.getMulti.return_value = ["2"] storage.getVideoIdStatusFromCache("some_id", [{"videoid": "vid1"}, {"other_id": "stuff"}]) sys.modules["__main__"].cache.getMulti.assert_any_call("some_id", ["vid1"])
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_getVideoIdStatusFromCache_should_call_cache_GetMulti_to_request_information(self): storage = YouTubeStorage() sys.modules["__main__"].cache.getMulti.return_value = ["2"] storage.getVideoIdStatusFromCache("some_id", [{"videoid": "vid1"}, {"other_id": "stuff"}]) assert sys.modules["__main__"].cache.getMulti.call_count == 1
def test_list_should_call_getStoredArtists_if_store_artist_is_in_params(self): storage = YouTubeStorage() storage.getStoredArtists = Mock() storage.getStoredArtists.return_value = ("", 200) storage.list({"store": "artists"}) storage.getStoredArtists.assert_called_with({"store": "artists"})
def test_list_should_call_getUserOptionFolder_if_store_contact_option_is_in_params(self): storage = YouTubeStorage() storage.getUserOptionFolder = Mock() storage.getUserOptionFolder.return_value = ("", 200) storage.list({"store": "contact_options"}) storage.getUserOptionFolder.assert_called_with({"store": "contact_options"})
def test_getResultSetStorageKey_should_handle_external_correctly(self): storage = YouTubeStorage() result = storage._getResultSetStorageKey( {"user_feed": "playlist", "playlist": "some_playlist", "external": "true", "contact": "some_contact"} ) assert result.find("external") > 0
def test_changeSubscriptionView_should_call_getStorageKey(self): storage = YouTubeStorage() storage.getStorageKey = Mock() storage.storeValue = Mock() storage.changeSubscriptionView({"view_mode": "my_view_mode"}) storage.getStorageKey.assert_called_with({"user_feed": "my_view_mode", "view_mode": "my_view_mode"}, "viewmode")
def test_getValueStorageKey_should_handle_external_marker(self): storage = YouTubeStorage() result = storage._getValueStorageKey( {"user_feed": "playlist", "external": "true", "contact": "some_contact"}, {"playlist": "some_playlist"} ) assert result == "reverse_playlist_some_playlist_external_some_contact"
def test_getReversePlaylistOrder_should_call_retrieve_to_fetch_reverse_value(self): storage = YouTubeStorage() storage.retrieve = Mock() storage.retrieve.return_value = "true" result = storage.getReversePlaylistOrder({"playlist": "some_playlists"}) assert result == True
def test_getThumbnailStorageKey_should_return_correct_key_for_search_item(self): storage = YouTubeStorage() result = storage._getThumbnailStorageKey( {"some_param": "something"}, {"search": "some_search", "feed": "search"} ) assert result == "search_some_search_thumb"
def test_list_should_call_getStoredSearches_if_store_is_defined_in_params_but_not_artist_or_contact_option(self): storage = YouTubeStorage() storage.getStoredSearches = Mock() storage.getStoredSearches.return_value = ("", 200) storage.list({"store": "somestore"}) storage.getStoredSearches.assert_called_with({"store": "somestore"})
def test_getViewModeStorageKey_should_handle_external_marker(self): storage = YouTubeStorage() result = storage._getViewModeStorageKey( {"channel": "some_channel", "external": "true", "contact": "some_contact"} ) assert result[: result.find("_")] == "external"
def test_reversePlaylistOrder_should_executebuiltin_on_succes(self): storage = YouTubeStorage() storage.retrieve = Mock() storage.retrieve.return_value = "false" storage.store = Mock() storage.reversePlaylistOrder({"playlist": "some_playlists"}) sys.modules["__main__"].xbmc.executebuiltin.assert_called_with("Container.Refresh")
def test_getReversePlaylistOrder_should_return_false_if_playlist_is_not_in_params(self): storage = YouTubeStorage() storage.retrieve = Mock() storage.retrieve.return_value = "true" storage.store = Mock() result = storage.getReversePlaylistOrder() assert result == False
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_storeResultSet_should_prepend_item_to_collection_if_prepend_is_in_params(self): sys.modules["__main__"].settings.getSetting.return_value = "0" storage = YouTubeStorage() storage.retrieveResultSet = Mock() storage.retrieveResultSet.return_value = ["some_default"] storage.storeResultSet("some_key", "some_value", {"prepend": "true"}) sys.modules["__main__"].cache.set.assert_called_with("some_key", repr(["some_value", "some_default"]))
def test_store_should_call_storeResultSet_if_type_is_not_set(self): storage = YouTubeStorage() storage.storeResultSet = Mock() storage.getStorageKey = Mock() storage.getStorageKey.return_value = "key" storage.store({}, {"store": "pokeystore"}) storage.storeResultSet.assert_called_with("key", {"store": "pokeystore"})
def test_storeValue_should_call_cache_set_with_correct_params(self): storage = YouTubeStorage() storage.storeResultSet = Mock() storage.getStorageKey = Mock() storage.getStorageKey.return_value = "key" storage.storeValue("some_key", "some_value") sys.modules["__main__"].cache.set.assert_called_with("some_key", "some_value")
def test_storeResultSet_should_call_settings_getSetting_to_get_stored_searches_limit_if_prepend_is_params(self): sys.modules["__main__"].settings.getSetting.return_value = "0" storage = YouTubeStorage() storage.retrieveResultSet = Mock() storage.retrieveResultSet.return_value = [] storage.storeResultSet("some_key", ["some_value"], {"prepend": "true"}) sys.modules["__main__"].settings.getSetting.assert_called_with("saved_searches")
def test_storeResultSet_should_call_retrieveResultSet_if_append_is_in_params(self): sys.modules["__main__"].settings.getSetting.return_value = "0" storage = YouTubeStorage() storage.retrieveResultSet = Mock() storage.retrieveResultSet.return_value = [] storage.storeResultSet("some_key", ["some_value"], {"append": "true"}) storage.retrieveResultSet.assert_called_with("some_key")
def test_storeResultSet_should_call_cache_set_correctly_if_append_is_in_params(self): sys.modules["__main__"].settings.getSetting.return_value = "0" storage = YouTubeStorage() storage.retrieveResultSet = Mock() storage.retrieveResultSet.return_value = ["smokey"] storage.storeResultSet("some_key", "some_value", {"append": "true"}) sys.modules["__main__"].cache.set.assert_called_with("some_key", repr(["smokey", "some_value"]))
def test_changeSubscriptionView_should_call_storeValue(self): storage = YouTubeStorage() storage.getStorageKey = Mock() storage.getStorageKey.return_value = "my_key" storage.storeValue = Mock() storage.changeSubscriptionView({"view_mode": "my_view_mode"}) storage.storeValue.assert_called_with("my_key", "my_view_mode")
def test_reversePlaylistOrder_should_call_store_to_save_reverse_value(self): storage = YouTubeStorage() storage.retrieve = Mock() storage.retrieve.return_value = "false" storage.store = Mock() storage.reversePlaylistOrder({"playlist": "some_playlists"}) storage.store.assert_called_with({"playlist": "some_playlists"}, "true", "value")
def test_retrieve_should_call_getStorageKey_to_fetch_correct_storage_key(self): sys.modules["__main__"].settings.getSetting.return_value = "0" storage = YouTubeStorage() storage.getStorageKey = Mock() storage.getStorageKey.return_value = "some_key" storage.retrieve("some_key", "some_value", {"prepend": "true"}) storage.getStorageKey.assert_called_with("some_key", "some_value", {"prepend": "true"})
def test_getUserOptionFolder_should_return_modified_version_of_items_in_user_options( self): sys.modules["__main__"].language.return_value = "some_title" storage = YouTubeStorage() (result, status) = storage.getUserOptionFolder({}) assert (len(result) == 4) assert (result[0]["user_feed"] == "favorites") assert (result[1]["user_feed"] == "playlists") assert (result[2]["user_feed"] == "subscriptions") assert (result[3]["user_feed"] == "uploads")
def test_getVideoIdStatusFromCache_should_call_cache_GetMulti_to_request_information( self): storage = YouTubeStorage() sys.modules["__main__"].cache.getMulti.return_value = ["2"] storage.getVideoIdStatusFromCache("some_id", [{ "videoid": "vid1" }, { "other_id": "stuff" }]) assert (sys.modules["__main__"].cache.getMulti.call_count == 1)
def test_getValueStorageKey_should_handle_external_marker(self): storage = YouTubeStorage() result = storage._getValueStorageKey( { "user_feed": "playlist", "external": "true", "contact": "some_contact" }, {"playlist": "some_playlist"}) assert ( result == "reverse_playlist_some_playlist_external_some_contact")
def test_getVideoIdStatusFromCache_should_not_request_information_for_items_without_a_videoid( self): storage = YouTubeStorage() sys.modules["__main__"].cache.getMulti.return_value = ["2"] storage.getVideoIdStatusFromCache("some_id", [{ "videoid": "vid1" }, { "other_id": "stuff" }]) sys.modules["__main__"].cache.getMulti.assert_any_call( "some_id", ["vid1"])
def test_getStoredArtists_should_return_proper_list_structure(self): storage = YouTubeStorage() storage.retrieve = Mock() storage.retrieve.return_value = [("some_title", "some_artist")] (result, status) = storage.getStoredArtists({ "path": "some_path", "store": "somestore" }) assert (result[0]["artist"] == "some_artist") assert (result[0]["Title"] == "some_title") assert (result[0]["scraper"] == "music_artist") assert (result[0].has_key("icon")) assert (result[0].has_key("thumbnail"))
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_getVideoIdStatusFromCache_should_result_sets_with_missing_items( self): storage = YouTubeStorage() sys.modules["__main__"].cache.getMulti.return_value = ["2"] result = storage.getVideoIdStatusFromCache("some_id", [{ "videoid": "vid1", "Overlay": "1" }, { "videoid": "vid2", "Overlay": "1" }]) assert (result[0]["Overlay"] == "2") assert (result[1]["Overlay"] == "1")
def test_storeResultSet_should_append_item_to_collection_if_append_is_in_params( self): sys.modules["__main__"].settings.getSetting.return_value = "0" storage = YouTubeStorage() storage.retrieveResultSet = Mock() storage.storeResultSet("some_key", "some_value", {"append": "true"}) storage.retrieveResultSet().append.assert_called_with("some_value")
def test_getStoredArtists_should_call_retrieve_to_get_artist_thumbnails( self): storage = YouTubeStorage() storage.retrieve = Mock() storage.retrieve.return_value = [("some_title", "some_artist")] storage.getStoredArtists({"path": "some_path", "store": "somestore"}) storage.retrieve.assert_called_with( { "path": "some_path", "store": "somestore" }, "thumbnail", { 'artist': 'some_artist', 'Title': 'some_title', 'scraper': 'music_artist', 'path': "some_path", 'thumbnail': [('some_title', 'some_artist')], 'icon': 'music' })
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_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_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_storeValue_should_call_cache_set_with_correct_params(self): storage = YouTubeStorage() storage.storeResultSet = Mock() storage.getStorageKey = Mock() storage.getStorageKey.return_value = "key" storage.storeValue("some_key", "some_value") sys.modules["__main__"].cache.set.assert_called_with( "some_key", "some_value")
def test_retrieve_should_call_retrieveResultSet_if_type_is_not_set(self): sys.modules["__main__"].settings.getSetting.return_value = "0" storage = YouTubeStorage() storage.getStorageKey = Mock() storage.getStorageKey.return_value = "some_key" storage.retrieveResultSet = Mock() storage.retrieve("some_key") storage.retrieveResultSet.assert_called_with("some_key")
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_reversePlaylistOrder_should_executebuiltin_on_succes(self): storage = YouTubeStorage() storage.retrieve = Mock() storage.retrieve.return_value = "false" storage.store = Mock() storage.reversePlaylistOrder({"playlist": "some_playlists"}) sys.modules["__main__"].xbmc.executebuiltin.assert_called_with( 'Container.Refresh')
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_changeSubscriptionView_should_exit_cleanly_if_view_mode_is_not_in_params( self): storage = YouTubeStorage() storage.getStorageKey = Mock() storage.storeValue = Mock() storage.changeSubscriptionView({}) assert (storage.getStorageKey.call_count == 0) assert (storage.storeValue.call_count == 0)
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_reversePlaylistOrder_should_call_store_to_save_reverse_value( self): storage = YouTubeStorage() storage.retrieve = Mock() storage.retrieve.return_value = "false" storage.store = Mock() storage.reversePlaylistOrder({"playlist": "some_playlists"}) storage.store.assert_called_with({'playlist': 'some_playlists'}, 'true', 'value')
def test_changeSubscriptionView_should_fill_params_collection_before_exiting( self): storage = YouTubeStorage() storage.getStorageKey = Mock() storage.getStorageKey.return_value = "my_key" storage.storeValue = Mock() params = {"view_mode": "my_view_mode"} storage.changeSubscriptionView(params) assert (params.has_key("user_feed"))
def test_reversePlaylistOrder_should_exit_cleanly_if_playlist_params_is_missing( self): storage = YouTubeStorage() storage.retrieve = Mock() storage.retrieve.return_value = "false" storage.store = Mock() storage.reversePlaylistOrder({}) assert (storage.retrieve.call_count == 0) assert (storage.store.call_count == 0)
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_changeSubscriptionView_should_call_getStorageKey(self): storage = YouTubeStorage() storage.getStorageKey = Mock() storage.storeValue = Mock() storage.changeSubscriptionView({"view_mode": "my_view_mode"}) storage.getStorageKey.assert_called_with( { "user_feed": "my_view_mode", "view_mode": "my_view_mode" }, "viewmode")
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_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_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)