Merge pull request #250 from redshodan/get-similar-limit

Add missing limit parameter for track.getSimilar
This commit is contained in:
Hugo 2018-03-01 11:12:03 +02:00 committed by GitHub
commit 6fd84421bd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 2 deletions

View file

@ -2016,13 +2016,17 @@ class Track(_Opus):
self._request(self.ws_prefix + '.unlove')
def get_similar(self):
def get_similar(self, limit=None):
"""
Returns similar tracks for this track on the network,
based on listening data.
"""
doc = self._request(self.ws_prefix + '.getSimilar', True)
params = self._get_params()
if limit:
params['limit'] = limit
doc = self._request(self.ws_prefix + '.getSimilar', True, params)
seq = []
for node in doc.getElementsByTagName(self.ws_prefix):

View file

@ -160,6 +160,16 @@ class TestPyLastTrack(PyLastTestCase):
break
self.assertTrue(found)
def test_track_get_similar_limits(self):
# Arrange
track = pylast.Track("Cher", "Believe", self.network)
# Act/Assert
self.assertEqual(len(track.get_similar(limit=20)), 20)
self.assertLessEqual(len(track.get_similar(limit=10)), 10)
self.assertGreaterEqual(len(track.get_similar(limit=None)), 23)
self.assertGreaterEqual(len(track.get_similar(limit=0)), 23)
if __name__ == '__main__':
unittest.main(failfast=True)