diff --git a/pylast/__init__.py b/pylast/__init__.py index 8005c71..7020eee 100644 --- a/pylast/__init__.py +++ b/pylast/__init__.py @@ -1070,7 +1070,7 @@ class _Request(object): for key in keys: if key != "api_sig" and key != "api_key" and key != "sk": - cache_key += key + _string(self.params[key]) + cache_key += key + self.params[key] return hashlib.sha1(cache_key.encode("utf-8")).hexdigest() diff --git a/tests/request_test.py b/tests/request_test.py new file mode 100644 index 0000000..fb18091 --- /dev/null +++ b/tests/request_test.py @@ -0,0 +1,17 @@ +# -*- coding: utf-8 -*- +import mock +import pytest + +import pylast + + +def mock_network(): + return mock.Mock( + _get_ws_auth=mock.Mock(return_value=("", "", "")) + ) + +@pytest.mark.parametrize('unicode_artist', [u'\xe9lafdasfdsafdsa', u'éééééééé']) +def test_get_cache_key(unicode_artist): + request = pylast._Request(mock_network(), 'some_method', + params={'artist': unicode_artist}) + request._get_cache_key()