fix base object hasing. Closes #120 .

This commit is contained in:
Ivan Malison 2015-01-08 16:05:28 -08:00
parent 3f9137a700
commit de31fc33f6
3 changed files with 5 additions and 4 deletions

View file

@ -1 +1 @@
((nil . ((pytest-global-name . "source secrets.sh && tox -e py34 --"))))
((nil . ((pytest-global-name . "source secrets.sh && tox -e py27,py34 --"))))

View file

@ -1328,9 +1328,9 @@ class _BaseObject(object):
def __hash__(self):
# Convert any ints (or whatever) into strings
values = map(str, self._get_params().values())
values = map(six.text_type, self._get_params().values())
return hash(self.network) + hash(str(type(self)) + "".join(
return hash(self.network) + hash(six.text_type(type(self)) + "".join(
list(self._get_params().keys()) + list(values)
).lower())

View file

@ -24,5 +24,6 @@ def test_get_cache_key(artist):
@pytest.mark.parametrize('obj', [pylast.Artist(u'B\xe9l', mock_network())])
def test_cast(obj):
def test_cast_and_hash(obj):
assert type(six.text_type(obj)) is six.text_type
assert isinstance(hash(obj), int)