This commit is contained in:
Dwayne Campbell 2015-04-12 16:24:36 +00:00
commit b8e24fce9c
2 changed files with 37 additions and 0 deletions

View file

@ -404,6 +404,32 @@ class _Network(object):
return seq
def get_top_tracks_by_tag(self, tag, limit=None, cacheable=True):
"""Returns the top tracks by tag as a sequence of TopItem objects.
Parameters:
tag (Required) : A country name, as defined by the ISO 3166-1
limit (Optional) : The number of results to fetch per page.Defaults to 50.
"""
params = {"tag":tag}
if limit:
params["limit"] = limit
doc = _Request(self,"tag.getTopTracks",params).execute(cacheable)
seq = []
for node in doc.getElementsByTagName("track"):
title = _extract(node,"name")
artist = _extract(node,"name",1)
track = Track(artist,title,self)
weight = _number(_extract(node, "playcount"))
seq.append(TopItem(track,weight))
return seq
def get_geo_events(
self, longitude=None, latitude=None, location=None, distance=None,
tag=None, festivalsonly=None, limit=None, cacheable=True):

View file

@ -985,6 +985,17 @@ class TestPyLast(unittest.TestCase):
self.assertIsInstance(tracks[0], pylast.TopItem)
self.assertIsInstance(tracks[0].item, pylast.Track)
def test_tag_get_top_tracks(self):
# Arrange
# Act
tags = self.network.get_top_tracks_by_tag(
tag="happy", limit=1)
# Assert
self.assertEqual(len(tags), 1)
self.assertIsInstance(tags[0], pylast.TopItem)
self.assertIsInstance(tags[0].item, pylast.Track)
def test_metro_class(self):
# Arrange
# Act