diff --git a/pylast.py b/pylast.py index 8a9ae14..af77dff 100644 --- a/pylast.py +++ b/pylast.py @@ -977,7 +977,7 @@ class SessionKeyGenerator(object): TopItem = collections.namedtuple("TopItem", ["item", "weight"]) SimilarItem = collections.namedtuple("SimilarItem", ["item", "match"]) LibraryItem = collections.namedtuple("LibraryItem", ["item", "playcount", "tagcount"]) -PlayedTrack = collections.namedtuple("PlayedTrack", ["track", "playback_date", "timestamp"]) +PlayedTrack = collections.namedtuple("PlayedTrack", ["track", "album", "playback_date", "timestamp"]) LovedTrack = collections.namedtuple("LovedTrack", ["track", "date", "timestamp"]) ImageSizes = collections.namedtuple("ImageSizes", ["original", "large", "largesquare", "medium", "small", "extralarge"]) Image = collections.namedtuple("Image", ["title", "url", "dateadded", "format", "owner", "sizes", "votes"]) @@ -2964,9 +2964,10 @@ class User(_BaseObject): title = _extract(track, "name") artist = _extract(track, "artist") date = _extract(track, "date") + album = _extract(track, "album") timestamp = track.getElementsByTagName("date")[0].getAttribute("uts") - seq.append(PlayedTrack(Track(artist, title, self.network), date, timestamp)) + seq.append(PlayedTrack(Track(artist, title, self.network), album, date, timestamp)) return seq @@ -3096,9 +3097,10 @@ class User(_BaseObject): title = _extract(track, "name") artist = _extract(track, "artist") date = _extract(track, "date") + album = _extract(track, "album") timestamp = track.getElementsByTagName("date")[0].getAttribute("uts") - seq.append(PlayedTrack(Track(artist, title, self.network), date, timestamp)) + seq.append(PlayedTrack(Track(artist, title, self.network), album, date, timestamp)) return seq diff --git a/test_pylast.py b/test_pylast.py index 1a7221d..bc4f82c 100755 --- a/test_pylast.py +++ b/test_pylast.py @@ -513,6 +513,28 @@ class TestPyLast(unittest.TestCase): self.assertNotIsInstance(loved, str) + def test_album_in_recent_tracks(self): + # Arrange + lastfm_user = self.network.get_user(self.username) + + # Act + track = lastfm_user.get_recent_tracks(limit = 2)[0] # 2 to ignore now-playing + + # Assert + self.assertTrue(hasattr(track, 'album')) + + + def test_album_in_artist_tracks(self): + # Arrange + lastfm_user = self.network.get_user(self.username) + + # Act + track = lastfm_user.get_artist_tracks(artist = "Test Artist")[0] + + # Assert + self.assertTrue(hasattr(track, 'album')) + + if __name__ == '__main__': # For quick testing of a single case (eg. test = "test_scrobble")