mirror of
https://github.com/beetbox/beets.git
synced 2026-01-06 07:53:40 +01:00
Unit tests for fetchart plugin iTunes source
This commit is contained in:
parent
8cfbc8274e
commit
5d1c97824c
1 changed files with 82 additions and 0 deletions
|
|
@ -274,6 +274,88 @@ class AAOTest(UseThePlugin):
|
|||
next(self.source.get(album, self.settings, []))
|
||||
|
||||
|
||||
class ITunesStoreTest(UseThePlugin):
|
||||
def setUp(self):
|
||||
super(ITunesStoreTest, self).setUp()
|
||||
self.source = fetchart.ITunesStore(logger, self.plugin.config)
|
||||
self.settings = Settings()
|
||||
self.album = _common.Bag(albumartist="some artist", album="some album")
|
||||
|
||||
@responses.activate
|
||||
def run(self, *args, **kwargs):
|
||||
super(ITunesStoreTest, self).run(*args, **kwargs)
|
||||
|
||||
def mock_response(self, url, json):
|
||||
responses.add(responses.GET, url, body=json,
|
||||
content_type='application/json')
|
||||
|
||||
def test_itunesstore_finds_image(self):
|
||||
json = """{
|
||||
"results":
|
||||
[
|
||||
{
|
||||
"artistName": "some artist",
|
||||
"collectionName": "some album",
|
||||
"artworkUrl100": "url_to_the_image"
|
||||
}
|
||||
]
|
||||
}"""
|
||||
self.mock_response(fetchart.ITunesStore.API_URL, json)
|
||||
candidate = next(self.source.get(self.album, self.settings, []))
|
||||
self.assertEqual(candidate.url, 'url_to_the_image')
|
||||
|
||||
def test_itunesstore_no_result(self):
|
||||
json = '{"results": []}'
|
||||
self.mock_response(fetchart.ITunesStore.API_URL, json)
|
||||
with self.assertRaises(StopIteration):
|
||||
next(self.source.get(self.album, self.settings, []))
|
||||
|
||||
def test_itunesstore_bad_url(self):
|
||||
self.mock_response(u'https://www.apple.com', "")
|
||||
with self.assertRaises(StopIteration):
|
||||
next(self.source.get(self.album, self.settings, []))
|
||||
|
||||
def test_itunesstore_returns_result_without_artist(self):
|
||||
json = """{
|
||||
"results":
|
||||
[
|
||||
{
|
||||
"collectionName": "some album",
|
||||
"artworkUrl100": "url_to_the_image"
|
||||
}
|
||||
]
|
||||
}"""
|
||||
self.mock_response(fetchart.ITunesStore.API_URL, json)
|
||||
candidate = next(self.source.get(self.album, self.settings, []))
|
||||
self.assertEqual(candidate.url, 'url_to_the_image')
|
||||
|
||||
def test_itunesstore_returns_result_without_artwork(self):
|
||||
json = """{
|
||||
"results":
|
||||
[
|
||||
{
|
||||
"artistName": "some artist",
|
||||
"collectionName": "some album"
|
||||
}
|
||||
]
|
||||
}"""
|
||||
self.mock_response(fetchart.ITunesStore.API_URL, json)
|
||||
with self.assertRaises(StopIteration):
|
||||
next(self.source.get(self.album, self.settings, []))
|
||||
|
||||
def test_itunesstore_returns_no_result_when_error_received(self):
|
||||
json = '{"error": {"errors": [{"reason": "some reason"}]}}'
|
||||
self.mock_response(fetchart.ITunesStore.API_URL, json)
|
||||
with self.assertRaises(StopIteration):
|
||||
next(self.source.get(self.album, self.settings, []))
|
||||
|
||||
def test_itunesstore_returns_no_result_with_malformed_response(self):
|
||||
json = """bla blup"""
|
||||
self.mock_response(fetchart.ITunesStore.API_URL, json)
|
||||
with self.assertRaises(StopIteration):
|
||||
next(self.source.get(self.album, self.settings, []))
|
||||
|
||||
|
||||
class GoogleImageTest(UseThePlugin):
|
||||
def setUp(self):
|
||||
super(GoogleImageTest, self).setUp()
|
||||
|
|
|
|||
Loading…
Reference in a new issue