diff --git a/pylast/__init__.py b/pylast/__init__.py index 2bf9b1b..3b9b0c1 100644 --- a/pylast/__init__.py +++ b/pylast/__init__.py @@ -732,6 +732,7 @@ class _Request(object): """Representing an abstract web service operation.""" def __init__(self, network, method_name, params=None): + print(method_name) if params is None: params = {} @@ -1369,7 +1370,8 @@ class _Opus(_BaseObject, _Taggable): __hash__ = _BaseObject.__hash__ - def __init__(self, artist, title, network, ws_prefix, username=None, images=None): + def __init__(self, artist, title, network, ws_prefix, username=None, + images=None): """ Create an opus instance. # Parameters: @@ -1487,7 +1489,8 @@ class Album(_Opus): __hash__ = _Opus.__hash__ def __init__(self, artist, title, network, username=None, images=None): - super(Album, self).__init__(artist, title, network, "album", username, images) + super(Album, self).__init__(artist, title, network, "album", username, + images) def get_cover_image(self, size=SIZE_EXTRA_LARGE): """ @@ -1499,11 +1502,10 @@ class Album(_Opus): SIZE_SMALL """ if not self.images: - return _extract_all( - self._request( - self.ws_prefix + ".getInfo", cacheable=True), 'image')[size] - else: - return self.images[size] + self.images = _extract_all( + self._request(self.ws_prefix + ".getInfo", cacheable=True), + 'image') + return self.images[size] def get_tracks(self): """Returns the list of Tracks on this album.""" diff --git a/tests/test_network.py b/tests/test_network.py index fafe66f..ab5dad2 100755 --- a/tests/test_network.py +++ b/tests/test_network.py @@ -315,6 +315,26 @@ class TestPyLastNetwork(PyLastTestCase): self.assertIsInstance(results, list) self.assertIsInstance(results[0], pylast.Album) + def test_album_search_images(self): + # Arrange + album = "Nevermind" + search = self.network.search_for_album(album) + + # Act + results = search.get_next_page() + images = results[0].images + + # Assert + self.assertEqual(len(images), 4) + + self.assertTrue(images[pylast.SIZE_SMALL].startswith("https://")) + self.assertTrue(images[pylast.SIZE_SMALL].endswith(".png")) + self.assertIn("/34s/", images[pylast.SIZE_SMALL]) + + self.assertTrue(images[pylast.SIZE_EXTRA_LARGE].startswith("https://")) + self.assertTrue(images[pylast.SIZE_EXTRA_LARGE].endswith(".png")) + self.assertIn("/300x300/", images[pylast.SIZE_EXTRA_LARGE]) + def test_artist_search(self): # Arrange artist = "Nirvana"