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_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_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_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_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_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_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"