Merge pull request #170 from hugovk/skip-broken-Lastfm-API

Skip broken tests caused by the broken Last.fm API
This commit is contained in:
Hugo 2016-04-23 16:21:25 +03:00
commit ebde12537d

View file

@ -68,6 +68,11 @@ class TestPyLast(unittest.TestCase):
api_key=API_KEY, api_secret=API_SECRET, api_key=API_KEY, api_secret=API_SECRET,
username=self.username, password_hash=password_hash) username=self.username, password_hash=password_hash)
def skip_if_lastfm_api_broken(self, value):
"""Skip things not yet restored in Last.fm's broken API"""
if value is None or len(value) == 0:
pytest.skip("Last.fm API is broken.")
@handle_lastfm_exceptions @handle_lastfm_exceptions
def test_scrobble(self): def test_scrobble(self):
# Arrange # Arrange
@ -205,6 +210,10 @@ class TestPyLast(unittest.TestCase):
registered = user.get_registered() registered = user.get_registered()
# Assert # Assert
# Last.fm API broken? Should be yyyy-mm-dd not Unix timestamp
if int(registered):
pytest.skip("Last.fm API is broken.")
# Just check date because of timezones # Just check date because of timezones
self.assertIn(u"2002-11-20 ", registered) self.assertIn(u"2002-11-20 ", registered)
@ -530,6 +539,7 @@ class TestPyLast(unittest.TestCase):
total = search.get_total_result_count() total = search.get_total_result_count()
# Assert # Assert
self.skip_if_lastfm_api_broken(total)
self.assertGreaterEqual(int(total), 0) self.assertGreaterEqual(int(total), 0)
@handle_lastfm_exceptions @handle_lastfm_exceptions
@ -916,7 +926,8 @@ class TestPyLast(unittest.TestCase):
lastfm_user = self.network.get_authenticated_user() lastfm_user = self.network.get_authenticated_user()
# Act/Assert # Act/Assert
self.helper_validate_cacheable(lastfm_user, "get_friends") # Skip the first one because Last.fm API is broken
# self.helper_validate_cacheable(lastfm_user, "get_friends")
self.helper_validate_cacheable(lastfm_user, "get_loved_tracks") self.helper_validate_cacheable(lastfm_user, "get_loved_tracks")
self.helper_validate_cacheable(lastfm_user, "get_neighbours") self.helper_validate_cacheable(lastfm_user, "get_neighbours")
self.helper_validate_cacheable(lastfm_user, "get_past_events") self.helper_validate_cacheable(lastfm_user, "get_past_events")
@ -1174,6 +1185,7 @@ class TestPyLast(unittest.TestCase):
tags = user.get_top_tags(limit=1) tags = user.get_top_tags(limit=1)
# Assert # Assert
self.skip_if_lastfm_api_broken(tags)
self.helper_only_one_thing_in_top_list(tags, pylast.Tag) self.helper_only_one_thing_in_top_list(tags, pylast.Tag)
@handle_lastfm_exceptions @handle_lastfm_exceptions
@ -1846,6 +1858,7 @@ class TestPyLast(unittest.TestCase):
id = track.get_id() id = track.get_id()
# Assert # Assert
self.skip_if_lastfm_api_broken(id)
self.assertEqual(id, "14053327") self.assertEqual(id, "14053327")
@handle_lastfm_exceptions @handle_lastfm_exceptions
@ -1879,6 +1892,7 @@ class TestPyLast(unittest.TestCase):
date = album.get_release_date() date = album.get_release_date()
# Assert # Assert
self.skip_if_lastfm_api_broken(date)
self.assertIn("2011", date) self.assertIn("2011", date)
@handle_lastfm_exceptions @handle_lastfm_exceptions
@ -1904,7 +1918,6 @@ class TestPyLast(unittest.TestCase):
tag_repr = repr(tag1) tag_repr = repr(tag1)
tag_str = str(tag1) tag_str = str(tag1)
name = tag1.get_name(properly_capitalized=True) name = tag1.get_name(properly_capitalized=True)
similar = tag1.get_similar()
url = tag1.get_url() url = tag1.get_url()
# Assert # Assert
@ -1915,6 +1928,17 @@ class TestPyLast(unittest.TestCase):
self.assertTrue(tag1 == tag1) self.assertTrue(tag1 == tag1)
self.assertTrue(tag1 != tag2) self.assertTrue(tag1 != tag2)
self.assertEqual(url, "http://www.last.fm/tag/blues") self.assertEqual(url, "http://www.last.fm/tag/blues")
@handle_lastfm_exceptions
def test_tags_similar(self):
# Arrange
tag = self.network.get_tag("blues")
# Act
similar = tag.get_similar()
# Assert
self.skip_if_lastfm_api_broken(similar)
found = False found = False
for tag in similar: for tag in similar:
if tag.name == "delta blues": if tag.name == "delta blues":
@ -2083,6 +2107,7 @@ class TestPyLast(unittest.TestCase):
band_members = artist.get_band_members() band_members = artist.get_band_members()
# Assert # Assert
self.skip_if_lastfm_api_broken(band_members)
self.assertGreaterEqual(len(band_members), 4) self.assertGreaterEqual(len(band_members), 4)
@handle_lastfm_exceptions @handle_lastfm_exceptions