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_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_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_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_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_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_getStorageKey_should_call_getValueStorageKey_if_type_is_value(
            self):
        storage = YouTubeStorage()
        storage._getValueStorageKey = Mock()

        result = storage.getStorageKey({"some_param": "param_value"}, "value")

        storage._getValueStorageKey.assert_called_with(
            {"some_param": "param_value"}, {})
    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_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_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_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_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_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_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_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_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_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_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_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_store_should_call_storeValue_if_type_is_set(self):
        storage = YouTubeStorage()
        storage.storeValue = Mock()
        storage.getStorageKey = Mock()
        storage.getStorageKey.return_value = "key"

        result = storage.store({}, {"store": "pokeystore"}, "value")

        print repr(result)

        storage.storeValue.assert_called_with("key", {"store": "pokeystore"})
    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_store_should_call_storeValue_if_type_is_set(self):
        storage = YouTubeStorage()
        storage.storeValue = Mock()
        storage.getStorageKey = Mock()
        storage.getStorageKey.return_value = "key"

        result = storage.store({}, {"store": "pokeystore"}, "value")

        print repr(result)

        storage.storeValue.assert_called_with("key", {"store": "pokeystore"})
    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")