Skip to content

Commit

Permalink
Merge pull request #258 from pylast/fix-user.get_weekly_artist_charts
Browse files Browse the repository at this point in the history
Fix user.get_weekly_artist_charts
  • Loading branch information
hugovk committed Apr 5, 2018
2 parents dfb1ce2 + 892acd6 commit 72cdd8b
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 4 deletions.
11 changes: 9 additions & 2 deletions pylast/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -1169,8 +1169,15 @@ def get_weekly_charts(self, chart_kind, from_date=None, to_date=None):

seq = []
for node in doc.getElementsByTagName(chart_kind.lower()):
item = chart_type(
_extract(node, "artist"), _extract(node, "name"), self.network)
if chart_kind == "artist":
item = chart_type(
_extract(node, "name"),
self.network)
else:
item = chart_type(
_extract(node, "artist"),
_extract(node, "name"),
self.network)
weight = _number(_extract(node, "playcount"))
seq.append(TopItem(item, weight))

Expand Down
30 changes: 28 additions & 2 deletions tests/test_user.py
Original file line number Diff line number Diff line change
Expand Up @@ -388,21 +388,47 @@ def test_get_image(self):
# Arrange
user = self.network.get_user("RJ")

# Act / Assert
# Act
image = user.get_image()

# Assert
self.assertTrue(image.startswith("https://"))
self.assertTrue(image.endswith(".png"))

def test_get_url(self):
# Arrange
user = self.network.get_user("RJ")

# Act / Assert
# Act
url = user.get_url()

# Assert
self.assertEqual(url, "https://www.last.fm/user/rj")

def test_get_weekly_artist_charts(self):
# Arrange
user = self.network.get_user("bbc6music")

# Act
charts = user.get_weekly_artist_charts()
artist, weight = charts[0]

# Assert
self.assertIsNotNone(artist)
self.assertIsInstance(artist.network, pylast.LastFMNetwork)

def test_get_weekly_track_charts(self):
# Arrange
user = self.network.get_user("bbc6music")

# Act
charts = user.get_weekly_track_charts()
track, weight = charts[0]

# Assert
self.assertIsNotNone(track)
self.assertIsInstance(track.network, pylast.LastFMNetwork)


if __name__ == '__main__':
unittest.main(failfast=True)

0 comments on commit 72cdd8b

Please sign in to comment.