Merge pull request #4834 from Bobo1239/master

Handle missing release-relation-list field during pseudo-release lookup
This commit is contained in:
Adrian Sampson 2023-07-03 10:32:59 -07:00 committed by GitHub
commit 5bc0786f51
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 42 additions and 2 deletions

View file

@ -678,7 +678,10 @@ def _is_translation(r):
def _find_actual_release_from_pseudo_release(pseudo_rel: Dict) \
-> Optional[Dict]:
relations = pseudo_rel['release']["release-relation-list"]
try:
relations = pseudo_rel['release']["release-relation-list"]
except KeyError:
return None
# currently we only support trans(liter)ation's
translations = [r for r in relations if _is_translation(r)]

View file

@ -724,7 +724,7 @@ class MBLibraryTest(unittest.TestCase):
album = mb.album_for_id('d2a6f856-b553-40a0-ac54-a321e8e2da02')
self.assertEqual(album.country, 'COUNTRY')
def test_pseudo_releases_without_links(self):
def test_pseudo_releases_with_empty_links(self):
side_effect = [{
'release': {
'title': 'pseudo',
@ -762,6 +762,43 @@ class MBLibraryTest(unittest.TestCase):
album = mb.album_for_id('d2a6f856-b553-40a0-ac54-a321e8e2da02')
self.assertEqual(album.country, None)
def test_pseudo_releases_without_links(self):
side_effect = [{
'release': {
'title': 'pseudo',
'id': 'd2a6f856-b553-40a0-ac54-a321e8e2da02',
'status': 'Pseudo-Release',
'medium-list': [{
'track-list': [{
'id': 'baz',
'recording': {
'title': 'translated title',
'id': 'bar',
'length': 42,
},
'position': 9,
'number': 'A1',
}],
'position': 5,
}],
'artist-credit': [{
'artist': {
'name': 'some-artist',
'id': 'some-id',
},
}],
'release-group': {
'id': 'another-id',
},
}
},
]
with mock.patch('musicbrainzngs.get_release_by_id') as gp:
gp.side_effect = side_effect
album = mb.album_for_id('d2a6f856-b553-40a0-ac54-a321e8e2da02')
self.assertEqual(album.country, None)
def test_pseudo_releases_with_unsupported_links(self):
side_effect = [
{