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_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_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_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_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_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_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'
        })