Merge pull request #250 from redshodan/get-similar-limit
Add missing limit parameter for track.getSimilar
This commit is contained in:
commit
6fd84421bd
|
@ -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):
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue