From 50bb692383cca794b28cbc78f6a271237a4056cf Mon Sep 17 00:00:00 2001 From: hugovk Date: Sat, 1 Mar 2014 15:57:00 +0200 Subject: [PATCH] Add track.unlove, closes #65 --- pylast.py | 5 +++++ test_pylast.py | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/pylast.py b/pylast.py index ef1a89d..304bff6 100644 --- a/pylast.py +++ b/pylast.py @@ -2560,6 +2560,11 @@ class Track(_BaseObject, _Taggable): self._request('track.love') + def unlove(self): + """Remove the track to the user's loved tracks. """ + + self._request('track.unlove') + def ban(self): """Ban this track from ever playing on the radio. """ diff --git a/test_pylast.py b/test_pylast.py index dbfa7df..f18037d 100755 --- a/test_pylast.py +++ b/test_pylast.py @@ -119,6 +119,7 @@ class TestSequenceFunctions(unittest.TestCase): # Just check date because of timezones self.assertEquals(unixtime_registered, u"1037793040") + def test_get_genderless_user(self): # Arrange lastfm_user = self.network.get_user("test_user") # currently no gender set @@ -140,6 +141,40 @@ class TestSequenceFunctions(unittest.TestCase): # Assert self.assertIsNone(country) + + def test_love(self): + # Arrange + artist = "Test Artist" + title = "Test Title" + track = pylast.Track(artist, title, self.network) + lastfm_user = self.network.get_user(self.username) + + # Act + track.love() + + # Assert + loved = lastfm_user.get_loved_tracks(limit = 1) + self.assertEqual(str(loved[0].track.artist), "Test Artist") + self.assertEqual(str(loved[0].track.title), "Test Title") + + def test_unlove(self): + # Arrange + artist = "Test Artist" + title = "Test Title" + track = pylast.Track(artist, title, self.network) + lastfm_user = self.network.get_user(self.username) + track.love() + + # Act + track.unlove() + + # Assert + loved = lastfm_user.get_loved_tracks(limit = 1) + if len(loved): # OK to be empty but if not: + self.assertNotEqual(str(loved.track.artist), "Test Artist") + self.assertNotEqual(str(loved.track.title), "Test Title") + + if __name__ == '__main__': unittest.main()