From 3bf6570a83082505d827b72188b66ad0ea2c07dd Mon Sep 17 00:00:00 2001 From: Hugo Date: Fri, 7 Oct 2016 18:02:10 +0300 Subject: [PATCH 1/4] Update Libre.fm URL --- pylast/__init__.py | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/pylast/__init__.py b/pylast/__init__.py index 88039dd..7b30a52 100644 --- a/pylast/__init__.py +++ b/pylast/__init__.py @@ -915,8 +915,8 @@ class LibreFMNetwork(_Network): _Network.__init__( self, name="Libre.fm", - homepage="http://alpha.libre.fm", - ws_server=("alpha.libre.fm", "/2.0/"), + homepage="http://libre.fm", + ws_server=("libre.fm", "/2.0/"), api_key=api_key, api_secret=api_secret, session_key=session_key, @@ -924,18 +924,18 @@ class LibreFMNetwork(_Network): username=username, password_hash=password_hash, domain_names={ - DOMAIN_ENGLISH: "alpha.libre.fm", - DOMAIN_GERMAN: "alpha.libre.fm", - DOMAIN_SPANISH: "alpha.libre.fm", - DOMAIN_FRENCH: "alpha.libre.fm", - DOMAIN_ITALIAN: "alpha.libre.fm", - DOMAIN_POLISH: "alpha.libre.fm", - DOMAIN_PORTUGUESE: "alpha.libre.fm", - DOMAIN_SWEDISH: "alpha.libre.fm", - DOMAIN_TURKISH: "alpha.libre.fm", - DOMAIN_RUSSIAN: "alpha.libre.fm", - DOMAIN_JAPANESE: "alpha.libre.fm", - DOMAIN_CHINESE: "alpha.libre.fm", + DOMAIN_ENGLISH: "libre.fm", + DOMAIN_GERMAN: "libre.fm", + DOMAIN_SPANISH: "libre.fm", + DOMAIN_FRENCH: "libre.fm", + DOMAIN_ITALIAN: "libre.fm", + DOMAIN_POLISH: "libre.fm", + DOMAIN_PORTUGUESE: "libre.fm", + DOMAIN_SWEDISH: "libre.fm", + DOMAIN_TURKISH: "libre.fm", + DOMAIN_RUSSIAN: "libre.fm", + DOMAIN_JAPANESE: "libre.fm", + DOMAIN_CHINESE: "libre.fm", }, urls={ "album": "artist/%(artist)s/album/%(album)s", From ebee3f55684889d27f56b44cd5575da4ee45763e Mon Sep 17 00:00:00 2001 From: hugovk Date: Sun, 30 Oct 2016 10:54:35 +0200 Subject: [PATCH 2/4] Error can be Libre.fm or Last.fm --- pylast/__init__.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pylast/__init__.py b/pylast/__init__.py index 7b30a52..a0d5df8 100644 --- a/pylast/__init__.py +++ b/pylast/__init__.py @@ -1681,15 +1681,15 @@ class WSError(Exception): class MalformedResponseError(Exception): - """Exception conveying a malformed response from Last.fm.""" + """Exception conveying a malformed response from the music network.""" def __init__(self, network, underlying_error): self.network = network self.underlying_error = underlying_error def __str__(self): - return "Malformed response from Last.fm. Underlying error: %s" % str( - self.underlying_error) + return "Malformed response from {}. Underlying error: {}".format( + self.network.name, str(self.underlying_error)) class NetworkError(Exception): From 571edf23d9966b82a0b665e2532be7dbfc3296d9 Mon Sep 17 00:00:00 2001 From: hugovk Date: Sun, 30 Oct 2016 12:25:10 +0200 Subject: [PATCH 3/4] Separate Libre.fm test from Last.fm tests --- tests/test_pylast.py | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/tests/test_pylast.py b/tests/test_pylast.py index 58f16bd..3524eee 100755 --- a/tests/test_pylast.py +++ b/tests/test_pylast.py @@ -375,21 +375,6 @@ class TestPyLast(unittest.TestCase): self.assertEqual(str(current_track.title), "Test Title") self.assertEqual(str(current_track.artist), "Test Artist") - @handle_lastfm_exceptions - def test_libre_fm(self): - # Arrange - username = self.__class__.secrets["username"] - password_hash = self.__class__.secrets["password_hash"] - - # Act - network = pylast.LibreFMNetwork( - password_hash=password_hash, username=username) - tags = network.get_top_tags(limit=1) - - # Assert - self.assertGreater(len(tags), 0) - self.assertIsInstance(tags[0], pylast.TopItem) - @handle_lastfm_exceptions def test_album_tags_are_topitems(self): # Arrange @@ -2175,5 +2160,26 @@ class TestPyLast(unittest.TestCase): # Assert self.assertEqual(mbid, None) + +@flaky(max_runs=5, min_passes=1) +class TestPyLastWithLibreFm(unittest.TestCase): + """Own class for Libre.fm because we don't need the Last.fm setUp""" + + def test_libre_fm(self): + # Arrange + secrets = load_secrets() + username = secrets["username"] + password_hash = secrets["password_hash"] + + # Act + network = pylast.LibreFMNetwork( + password_hash=password_hash, username=username) + tags = network.get_top_tags(limit=1) + + # Assert + self.assertGreater(len(tags), 0) + self.assertIsInstance(tags[0], pylast.TopItem) + + if __name__ == '__main__': unittest.main(failfast=True) From 76d85f4c19379e1e7456b71f2ee452e5fbfb8e46 Mon Sep 17 00:00:00 2001 From: hugovk Date: Mon, 2 Jan 2017 15:25:21 +0200 Subject: [PATCH 4/4] Update libre.fm test --- tests/test_pylast.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/test_pylast.py b/tests/test_pylast.py index 3524eee..868983d 100755 --- a/tests/test_pylast.py +++ b/tests/test_pylast.py @@ -2174,11 +2174,11 @@ class TestPyLastWithLibreFm(unittest.TestCase): # Act network = pylast.LibreFMNetwork( password_hash=password_hash, username=username) - tags = network.get_top_tags(limit=1) + artist = network.get_artist("Radiohead") + name = artist.get_name() # Assert - self.assertGreater(len(tags), 0) - self.assertIsInstance(tags[0], pylast.TopItem) + self.assertEqual(name, "Radiohead") if __name__ == '__main__':