Merge pull request #398 from whipper-team/bugfix/issue-396-no-mb-release-group-type

Make whipper not break on missing release type
This commit is contained in:
JoeLametta
2019-05-03 10:16:12 +02:00
committed by GitHub
6 changed files with 587 additions and 3 deletions

View File

@@ -29,7 +29,7 @@ Example disc id: KnpGsLhvH.lPrNc1PBL21lb9Bg4-"""
print('- Release %d:' % (i + 1, ))
print(' Artist: %s' % md.artist.encode('utf-8'))
print(' Title: %s' % md.title.encode('utf-8'))
print(' Type: %s' % md.releaseType.encode('utf-8')) # noqa: E501
print(' Type: %s' % unicode(md.releaseType).encode('utf-8')) # noqa: E501
print(' URL: %s' % md.url)
print(' Tracks: %d' % len(md.tracks))
if md.catalogNumber:

View File

@@ -182,7 +182,8 @@ def _getMetadata(release, discid, country=None):
discMD = DiscMetadata()
discMD.releaseType = release['release-group']['type']
if 'type' in release['release-group']:
discMD.releaseType = release['release-group']['type']
discCredit = _Credit(release['artist-credit'])
# FIXME: is there a better way to check for VA ?

View File

@@ -0,0 +1,30 @@
# vi:si:et:sw=4:sts=4:ts=4:set fileencoding=utf-8
u"""Tests for whipper.command.mblookup"""
import os
import pickle
import unittest
from whipper.command import mblookup
class MBLookupTestCase(unittest.TestCase):
u"""Test cases for whipper.command.mblookup.MBLookup"""
@staticmethod
def _mock_musicbrainz(discid, country=None, record=False):
u"""Mock function for whipper.common.mbngs.musicbrainz function."""
filename = u"whipper.discid.{}.pickle".format(discid)
path = os.path.join(os.path.dirname(__file__), filename)
with open(path) as p:
return pickle.load(p)
def testMissingReleaseType(self):
u"""Test that lookup for release without a type set doesn't fail."""
# Using: Gustafsson, Österberg & Cowle - What's Up? 8 (disc 4)
# https://musicbrainz.org/release/d8e6153a-2c47-4804-9d73-0aac1081c3b1
mblookup.musicbrainz = self._mock_musicbrainz
discid = u"xu338_M8WukSRi0J.KTlDoflB8Y-"
# https://musicbrainz.org/cdtoc/xu338_M8WukSRi0J.KTlDoflB8Y-
lookup = mblookup.MBLookup([discid], u'whipper mblookup', None)
lookup.do()

View File

@@ -1,5 +1,5 @@
# -*- Mode: Python; test-case-name: whipper.test.test_common_mbngs -*-
# vi:si:et:sw=4:sts=4:ts=4
# vi:si:et:sw=4:sts=4:ts=4:set fileencoding=utf-8
import os
import json
@@ -207,6 +207,20 @@ class MetadataTestCase(unittest.TestCase):
self.assertEqual(track2.mbidRecording,
u'5f19758e-7421-4c71-a599-9a9575d8e1b0')
def testMissingReleaseGroupType(self):
"""Check that whipper doesn't break if there's no type."""
# Using: Gustafsson, Österberg & Cowle - What's Up? 8 (disc 4)
# https://musicbrainz.org/release/d8e6153a-2c47-4804-9d73-0aac1081c3b1
filename = 'whipper.release.d8e6153a-2c47-4804-9d73-0aac1081c3b1.json'
path = os.path.join(os.path.dirname(__file__), filename)
handle = open(path, "rb")
response = json.loads(handle.read())
handle.close()
discid = "xu338_M8WukSRi0J.KTlDoflB8Y-" # disc 4
metadata = mbngs._getMetadata(response['release'], discid)
self.assertEqual(metadata.releaseType, None)
def testAllAvailableMetadata(self):
"""Check that all possible metadata gets assigned."""
# Using: David Rovics - The Other Side

View File

@@ -0,0 +1,538 @@
(lp0
ccopy_reg
_reconstructor
p1
(cwhipper.common.mbngs
DiscMetadata
p2
c__builtin__
object
p3
Ntp4
Rp5
(dp6
S'sortName'
p7
VGustafsson, J<>rgen, <20>sterberg, Eva & Cowle, Andy
p8
sS'artist'
p9
VJ<EFBFBD>rgen Gustafsson, Eva <20>sterberg & Andy Cowle
p10
sS'url'
p11
S'https://musicbrainz.org/release/d8e6153a-2c47-4804-9d73-0aac1081c3b1'
p12
sS'barcode'
p13
S'9789162267957'
p14
sS'tracks'
p15
(lp16
g1
(cwhipper.common.mbngs
TrackMetadata
p17
g3
Ntp18
Rp19
(dp20
g7
VGustafsson, J<>rgen, <20>sterberg, Eva & Cowle, Andy
p21
sS'mbidRecording'
p22
S'2ed20192-08ae-4852-a05a-b59b9c27f8c0'
p23
sS'title'
p24
S'Best friends (sid. 96)'
p25
sg9
VJ<EFBFBD>rgen Gustafsson, Eva <20>sterberg & Andy Cowle
p26
sS'mbidWorks'
p27
(lp28
sS'mbid'
p29
S'f9f6ae81-7d3b-475f-bb66-1dbd09705ca2'
p30
sS'duration'
p31
I86666
sS'mbidArtist'
p32
(lp33
S'0508d601-375d-419e-b581-8d5f0b43e573'
p34
aS'56309f78-8e31-4362-b875-5bdd4ac2b81f'
p35
aS'591599ca-8598-4407-8aa8-bbe7aedd9d24'
p36
asbag1
(g17
g3
Ntp37
Rp38
(dp39
g7
VGustafsson, J<>rgen, <20>sterberg, Eva & Cowle, Andy
p40
sg22
S'314126fa-75a4-4e1c-9bae-4b00253a47e3'
p41
sg24
S'Best friends (sid. 97)'
p42
sg9
VJ<EFBFBD>rgen Gustafsson, Eva <20>sterberg & Andy Cowle
p43
sg27
(lp44
sg29
S'e41896d4-5ab9-41b4-861a-8021370885ce'
p45
sg31
I139800
sg32
(lp46
S'0508d601-375d-419e-b581-8d5f0b43e573'
p47
aS'56309f78-8e31-4362-b875-5bdd4ac2b81f'
p48
aS'591599ca-8598-4407-8aa8-bbe7aedd9d24'
p49
asbag1
(g17
g3
Ntp50
Rp51
(dp52
g7
VGustafsson, J<>rgen, <20>sterberg, Eva & Cowle, Andy
p53
sg22
S'81a572b6-fc21-4f47-b63c-ff42c5b2aa50'
p54
sg24
VWorking life (sid. 98\u201399)
p55
sg9
VJ<EFBFBD>rgen Gustafsson, Eva <20>sterberg & Andy Cowle
p56
sg27
(lp57
sg29
S'a58c92f9-84ef-492e-be75-a2482ff5b0cd'
p58
sg31
I171293
sg32
(lp59
S'0508d601-375d-419e-b581-8d5f0b43e573'
p60
aS'56309f78-8e31-4362-b875-5bdd4ac2b81f'
p61
aS'591599ca-8598-4407-8aa8-bbe7aedd9d24'
p62
asbag1
(g17
g3
Ntp63
Rp64
(dp65
g7
VGustafsson, J<>rgen, <20>sterberg, Eva & Cowle, Andy
p66
sg22
S'03497930-6681-47a2-b8ba-98b04a51682f'
p67
sg24
S'Pioneers in sport (sid. 100)'
p68
sg9
VJ<EFBFBD>rgen Gustafsson, Eva <20>sterberg & Andy Cowle
p69
sg27
(lp70
sg29
S'7701ef4a-2682-4183-990f-2724a7445bb6'
p71
sg31
I97813
sg32
(lp72
S'0508d601-375d-419e-b581-8d5f0b43e573'
p73
aS'56309f78-8e31-4362-b875-5bdd4ac2b81f'
p74
aS'591599ca-8598-4407-8aa8-bbe7aedd9d24'
p75
asbag1
(g17
g3
Ntp76
Rp77
(dp78
g7
VGustafsson, J<>rgen, <20>sterberg, Eva & Cowle, Andy
p79
sg22
S'a0bb30e0-87a8-4598-82ee-ef47ce46b9c5'
p80
sg24
S'Pioneers in sport (sid. 101)'
p81
sg9
VJ<EFBFBD>rgen Gustafsson, Eva <20>sterberg & Andy Cowle
p82
sg27
(lp83
sg29
S'f5c49a53-71d3-487c-96dc-108fcd3a5243'
p84
sg31
I93546
sg32
(lp85
S'0508d601-375d-419e-b581-8d5f0b43e573'
p86
aS'56309f78-8e31-4362-b875-5bdd4ac2b81f'
p87
aS'591599ca-8598-4407-8aa8-bbe7aedd9d24'
p88
asbag1
(g17
g3
Ntp89
Rp90
(dp91
g7
VGustafsson, J<>rgen, <20>sterberg, Eva & Cowle, Andy
p92
sg22
S'54ef6217-6954-4b42-9c1b-8b30d11f4204'
p93
sg24
S'Weird, but true! (sid. 102)'
p94
sg9
VJ<EFBFBD>rgen Gustafsson, Eva <20>sterberg & Andy Cowle
p95
sg27
(lp96
sg29
S'def7ea86-07d2-41c0-9ae8-562377484188'
p97
sg31
I124186
sg32
(lp98
S'0508d601-375d-419e-b581-8d5f0b43e573'
p99
aS'56309f78-8e31-4362-b875-5bdd4ac2b81f'
p100
aS'591599ca-8598-4407-8aa8-bbe7aedd9d24'
p101
asbag1
(g17
g3
Ntp102
Rp103
(dp104
g7
VGustafsson, J<>rgen, <20>sterberg, Eva & Cowle, Andy
p105
sg22
S'e9d8e7bc-8d8e-4d0f-87b0-429066b3bb1a'
p106
sg24
S'Weird, but true! (sid. 103)'
p107
sg9
VJ<EFBFBD>rgen Gustafsson, Eva <20>sterberg & Andy Cowle
p108
sg27
(lp109
sg29
S'a7c5c2f8-a9fc-4ebd-8fd4-dc6d200ff794'
p110
sg31
I98000
sg32
(lp111
S'0508d601-375d-419e-b581-8d5f0b43e573'
p112
aS'56309f78-8e31-4362-b875-5bdd4ac2b81f'
p113
aS'591599ca-8598-4407-8aa8-bbe7aedd9d24'
p114
asbag1
(g17
g3
Ntp115
Rp116
(dp117
g7
VGustafsson, J<>rgen, <20>sterberg, Eva & Cowle, Andy
p118
sg22
S'c330f9eb-f63d-4f1d-b858-73c3912f5100'
p119
sg24
S'Useful inventions (sid. 104)'
p120
sg9
VJ<EFBFBD>rgen Gustafsson, Eva <20>sterberg & Andy Cowle
p121
sg27
(lp122
sg29
S'2c9b71c1-7987-4e01-9d3d-d9eae9ea7d04'
p123
sg31
I111933
sg32
(lp124
S'0508d601-375d-419e-b581-8d5f0b43e573'
p125
aS'56309f78-8e31-4362-b875-5bdd4ac2b81f'
p126
aS'591599ca-8598-4407-8aa8-bbe7aedd9d24'
p127
asbag1
(g17
g3
Ntp128
Rp129
(dp130
g7
VGustafsson, J<>rgen, <20>sterberg, Eva & Cowle, Andy
p131
sg22
S'2fd621a4-575f-4ad3-8beb-4f435f81714e'
p132
sg24
S'Useful inventions (sid. 105)'
p133
sg9
VJ<EFBFBD>rgen Gustafsson, Eva <20>sterberg & Andy Cowle
p134
sg27
(lp135
sg29
S'09f7c0fe-165f-4e3d-8eab-0379e3330191'
p136
sg31
I111186
sg32
(lp137
S'0508d601-375d-419e-b581-8d5f0b43e573'
p138
aS'56309f78-8e31-4362-b875-5bdd4ac2b81f'
p139
aS'591599ca-8598-4407-8aa8-bbe7aedd9d24'
p140
asbag1
(g17
g3
Ntp141
Rp142
(dp143
g7
VGustafsson, J<>rgen, <20>sterberg, Eva & Cowle, Andy
p144
sg22
S'85300031-cf37-4fee-aac5-2dd4f3302d5d'
p145
sg24
S'Friends or not friends'
p146
sg9
VJ<EFBFBD>rgen Gustafsson, Eva <20>sterberg & Andy Cowle
p147
sg27
(lp148
sg29
S'80fc7cd1-576d-4e97-b20d-7af146209771'
p149
sg31
I252000
sg32
(lp150
S'0508d601-375d-419e-b581-8d5f0b43e573'
p151
aS'56309f78-8e31-4362-b875-5bdd4ac2b81f'
p152
aS'591599ca-8598-4407-8aa8-bbe7aedd9d24'
p153
asbag1
(g17
g3
Ntp154
Rp155
(dp156
g7
VGustafsson, J<>rgen, <20>sterberg, Eva & Cowle, Andy
p157
sg22
S'56510ac8-444c-48f4-8b35-86ba3d79a93f'
p158
sg24
S'People at work'
p159
sg9
VJ<EFBFBD>rgen Gustafsson, Eva <20>sterberg & Andy Cowle
p160
sg27
(lp161
sg29
S'47dc69cf-dfe4-4084-a22e-62bfd0cbfc11'
p162
sg31
I137520
sg32
(lp163
S'0508d601-375d-419e-b581-8d5f0b43e573'
p164
aS'56309f78-8e31-4362-b875-5bdd4ac2b81f'
p165
aS'591599ca-8598-4407-8aa8-bbe7aedd9d24'
p166
asbag1
(g17
g3
Ntp167
Rp168
(dp169
g7
VGustafsson, J<>rgen, <20>sterberg, Eva & Cowle, Andy
p170
sg22
S'51bd9b54-4145-4ab0-8334-ba7bf40160b0'
p171
sg24
S'Sports'
p172
sg9
VJ<EFBFBD>rgen Gustafsson, Eva <20>sterberg & Andy Cowle
p173
sg27
(lp174
sg29
S'e30daeed-c043-4140-bdf1-182baf9eab16'
p175
sg31
I192213
sg32
(lp176
S'0508d601-375d-419e-b581-8d5f0b43e573'
p177
aS'56309f78-8e31-4362-b875-5bdd4ac2b81f'
p178
aS'591599ca-8598-4407-8aa8-bbe7aedd9d24'
p179
asbag1
(g17
g3
Ntp180
Rp181
(dp182
g7
VGustafsson, J<>rgen, <20>sterberg, Eva & Cowle, Andy
p183
sg22
S'ebc81f6c-9c8e-498a-b622-dc27f450a89a'
p184
sg24
S'Stories to tell'
p185
sg9
VJ<EFBFBD>rgen Gustafsson, Eva <20>sterberg & Andy Cowle
p186
sg27
(lp187
sg29
S'c7e2f93a-7f68-4a1f-9458-a4399803a1b6'
p188
sg31
I209640
sg32
(lp189
S'0508d601-375d-419e-b581-8d5f0b43e573'
p190
aS'56309f78-8e31-4362-b875-5bdd4ac2b81f'
p191
aS'591599ca-8598-4407-8aa8-bbe7aedd9d24'
p192
asbag1
(g17
g3
Ntp193
Rp194
(dp195
g7
VGustafsson, J<>rgen, <20>sterberg, Eva & Cowle, Andy
p196
sg22
S'e36f3f9d-6bf6-44db-938b-64372b772da5'
p197
sg24
S'Inventions'
p198
sg9
VJ<EFBFBD>rgen Gustafsson, Eva <20>sterberg & Andy Cowle
p199
sg27
(lp200
sg29
S'9871987a-ab2c-4a2f-b4e0-61dafb058540'
p201
sg31
I141186
sg32
(lp202
S'0508d601-375d-419e-b581-8d5f0b43e573'
p203
aS'56309f78-8e31-4362-b875-5bdd4ac2b81f'
p204
aS'591599ca-8598-4407-8aa8-bbe7aedd9d24'
p205
asbasg31
I1966982
sg29
S'd8e6153a-2c47-4804-9d73-0aac1081c3b1'
p206
sS'various'
p207
I00
sS'catalogNumber'
p208
S'6795-7'
p209
sS'release'
p210
S'2008'
p211
sg24
VWhat\u2019s Up? 8 (Disc 4 of 4)
p212
sg32
(lp213
S'0508d601-375d-419e-b581-8d5f0b43e573'
p214
aS'56309f78-8e31-4362-b875-5bdd4ac2b81f'
p215
aS'591599ca-8598-4407-8aa8-bbe7aedd9d24'
p216
asS'mbidReleaseGroup'
p217
S'6aa93fc6-6389-414d-a3ed-7ece36bc4931'
p218
sS'releaseTitle'
p219
VWhat\u2019s Up? 8
p220
sba.

File diff suppressed because one or more lines are too long