diff --git a/whipper/test/test_common_mbngs.py b/whipper/test/test_common_mbngs.py index a75da35..52b4535 100644 --- a/whipper/test/test_common_mbngs.py +++ b/whipper/test/test_common_mbngs.py @@ -198,3 +198,48 @@ class MetadataTestCase(unittest.TestCase): u'f16db4bf-9a34-3d5a-a975-c9375ab7a2ca') self.assertEqual(track2.mbidRecording, u'5f19758e-7421-4c71-a599-9a9575d8e1b0') + + def testAllAvailableMetadata(self): + """Check that all possible metadata gets assigned.""" + # Using: David Rovics - The Other Side + # https://musicbrainz.org/release/6109ceed-7e21-490b-b5ad-3a66b4e4cfbb + filename = 'whipper.release.6109ceed-7e21-490b-b5ad-3a66b4e4cfbb.json' + path = os.path.join(os.path.dirname(__file__), filename) + handle = open(path, "rb") + response = json.loads(handle.read()) + handle.close() + discid = "cHW1Uutl_kyWNaLJsLmTGTe4rnE-" + + metadata = mbngs._getMetadata({}, response['release'], discid) + self.assertEqual(metadata.artist, u'David Rovics') + self.assertEqual(metadata.sortName, u'Rovics, David') + self.assertFalse(metadata.various) + self.assertIsInstance(metadata.tracks, list) + self.assertEqual(metadata.release, u'2015') + self.assertEqual(metadata.releaseTitle, u'The Other Side') + self.assertEqual(metadata.releaseType, u'Album') + self.assertEqual(metadata.mbid, + u'6109ceed-7e21-490b-b5ad-3a66b4e4cfbb') + self.assertEqual(metadata.mbidReleaseGroup, + u'99850b41-a06e-4fb8-992c-75c191a77803') + self.assertEqual(metadata.mbidArtist, + u'4d56eb9f-13b3-4f05-9db7-50195378d49f') + self.assertEqual(metadata.url, + u'https://musicbrainz.org/release' + '/6109ceed-7e21-490b-b5ad-3a66b4e4cfbb') + self.assertEqual(metadata.catalogNumber, u'[none]') + self.assertEqual(metadata.barcode, u'700261430249') + + self.assertEqual(len(metadata.tracks), 16) + + track1 = metadata.tracks[0] + self.assertEqual(track1.artist, u'David Rovics') + self.assertEqual(track1.title, u'Waiting for the Hurricane') + self.assertEqual(track1.duration, 176320) + self.assertEqual(track1.mbid, + u'4116eea3-b9c2-452a-8d63-92f1e585b225') + self.assertEqual(track1.sortName, u'Rovics, David') + self.assertEqual(track1.mbidArtist, + u'4d56eb9f-13b3-4f05-9db7-50195378d49f') + self.assertEqual(track1.mbidRecording, + u'b191794d-b7c6-4d6f-971e-0a543959b5ad') diff --git a/whipper/test/whipper.release.6109ceed-7e21-490b-b5ad-3a66b4e4cfbb.json b/whipper/test/whipper.release.6109ceed-7e21-490b-b5ad-3a66b4e4cfbb.json new file mode 100644 index 0000000..55cb950 --- /dev/null +++ b/whipper/test/whipper.release.6109ceed-7e21-490b-b5ad-3a66b4e4cfbb.json @@ -0,0 +1 @@ +{"release": {"status": "Official", "artist-credit": [{"artist": {"sort-name": "Rovics, David", "id": "4d56eb9f-13b3-4f05-9db7-50195378d49f", "name": "David Rovics"}}], "barcode": "700261430249", "label-info-count": 1, "label-info-list": [{"catalog-number": "[none]", "label": {"sort-name": "[no label]", "disambiguation": "Special purpose label \u2013 white labels, self-published releases and other \u201cno label\u201d releases", "id": "157afde4-4bf5-4039-8ad2-5a15acc85176", "name": "[no label]"}}], "cover-art-archive": {"count": "0", "front": "false", "back": "false", "artwork": "false"}, "release-event-list": [{"date": "2015"}], "packaging": "Cardboard/Paper Sleeve", "text-representation": {"language": "eng", "script": "Latn"}, "date": "2015", "quality": "normal", "id": "6109ceed-7e21-490b-b5ad-3a66b4e4cfbb", "release-event-count": 1, "title": "The Other Side", "medium-count": 1, "artist-credit-phrase": "David Rovics", "release-group": {"artist-credit": [{"artist": {"sort-name": "Rovics, David", "id": "4d56eb9f-13b3-4f05-9db7-50195378d49f", "name": "David Rovics"}}], "first-release-date": "2015-08-31", "primary-type": "Album", "title": "The Other Side", "type": "Album", "id": "99850b41-a06e-4fb8-992c-75c191a77803", "artist-credit-phrase": "David Rovics"}, "medium-list": [{"position": "1", "track-count": 16, "format": "CD", "disc-list": [{"offset-list": [150, 13374, 24544, 40029, 53948, 64717, 75840, 92284, 113387, 128033, 144752, 156524, 173552, 189058, 201726, 214559], "id": "cHW1Uutl_kyWNaLJsLmTGTe4rnE-", "sectors": "224238", "offset-count": 16}], "track-list": [{"artist-credit": [{"artist": {"sort-name": "Rovics, David", "id": "4d56eb9f-13b3-4f05-9db7-50195378d49f", "name": "David Rovics"}}], "number": "1", "artist-credit-phrase": "David Rovics", "recording": {"artist-credit": [{"artist": {"sort-name": "Rovics, David", "id": "4d56eb9f-13b3-4f05-9db7-50195378d49f", "name": "David Rovics"}}], "length": "176320", "artist-credit-phrase": "David Rovics", "id": "b191794d-b7c6-4d6f-971e-0a543959b5ad", "title": "Waiting for the Hurricane"}, "length": "176320", "position": "1", "id": "4116eea3-b9c2-452a-8d63-92f1e585b225", "track_or_recording_length": "176320"}, {"artist-credit": [{"artist": {"sort-name": "Rovics, David", "id": "4d56eb9f-13b3-4f05-9db7-50195378d49f", "name": "David Rovics"}}], "number": "2", "artist-credit-phrase": "David Rovics", "recording": {"artist-credit": [{"artist": {"sort-name": "Rovics, David", "id": "4d56eb9f-13b3-4f05-9db7-50195378d49f", "name": "David Rovics"}}], "length": "148933", "artist-credit-phrase": "David Rovics", "id": "b570d899-c107-4656-8121-354c7d929d86", "title": "I Can\u2019t Breathe"}, "length": "148933", "position": "2", "id": "82c61a0f-9535-4170-86e9-46c2e5ca81f1", "track_or_recording_length": "148933"}, {"artist-credit": [{"artist": {"sort-name": "Rovics, David", "id": "4d56eb9f-13b3-4f05-9db7-50195378d49f", "name": "David Rovics"}}], "number": "3", "artist-credit-phrase": "David Rovics", "recording": {"artist-credit": [{"artist": {"sort-name": "Rovics, David", "id": "4d56eb9f-13b3-4f05-9db7-50195378d49f", "name": "David Rovics"}}], "length": "206466", "artist-credit-phrase": "David Rovics", "id": "5139256f-687a-4243-947c-e6da432f6c0c", "title": "Liberty and Justice for All"}, "length": "206466", "position": "3", "id": "60d8d1d9-541c-44c9-ab4a-958ae273e2fc", "track_or_recording_length": "206466"}, {"artist-credit": [{"artist": {"sort-name": "Rovics, David", "id": "4d56eb9f-13b3-4f05-9db7-50195378d49f", "name": "David Rovics"}}], "number": "4", "artist-credit-phrase": "David Rovics", "recording": {"artist-credit": [{"artist": {"sort-name": "Rovics, David", "id": "4d56eb9f-13b3-4f05-9db7-50195378d49f", "name": "David Rovics"}}], "length": "185586", "artist-credit-phrase": "David Rovics", "id": "985ed49c-2062-43cd-ab51-46adcd83669c", "title": "Before the War Came Home"}, "length": "185586", "position": "4", "id": "4fd2c3d8-f2af-47dd-b7e6-a37d995679ed", "track_or_recording_length": "185586"}, {"artist-credit": [{"artist": {"sort-name": "Rovics, David", "id": "4d56eb9f-13b3-4f05-9db7-50195378d49f", "name": "David Rovics"}}], "number": "5", "artist-credit-phrase": "David Rovics", "recording": {"artist-credit": [{"artist": {"sort-name": "Rovics, David", "id": "4d56eb9f-13b3-4f05-9db7-50195378d49f", "name": "David Rovics"}}], "length": "143586", "artist-credit-phrase": "David Rovics", "id": "f489a7e5-58a4-4082-9bbc-5d2d431cce53", "title": "Denmark, 1943"}, "length": "143586", "position": "5", "id": "bf53215d-a1b8-411d-af5a-314e1317bf88", "track_or_recording_length": "143586"}, {"artist-credit": [{"artist": {"sort-name": "Rovics, David", "id": "4d56eb9f-13b3-4f05-9db7-50195378d49f", "name": "David Rovics"}}], "number": "6", "artist-credit-phrase": "David Rovics", "recording": {"artist-credit": [{"artist": {"sort-name": "Rovics, David", "id": "4d56eb9f-13b3-4f05-9db7-50195378d49f", "name": "David Rovics"}}], "length": "148306", "artist-credit-phrase": "David Rovics", "id": "cff3765a-83ec-4c5b-8624-a4b8a8d385bb", "title": "Angry White American Man"}, "length": "148306", "position": "6", "id": "0d46a053-5fe7-4220-84c0-e9111334aeb0", "track_or_recording_length": "148306"}, {"artist-credit": [{"artist": {"sort-name": "Rovics, David", "id": "4d56eb9f-13b3-4f05-9db7-50195378d49f", "name": "David Rovics"}}], "number": "7", "artist-credit-phrase": "David Rovics", "recording": {"artist-credit": [{"artist": {"sort-name": "Rovics, David", "id": "4d56eb9f-13b3-4f05-9db7-50195378d49f", "name": "David Rovics"}}], "length": "219243", "artist-credit-phrase": "David Rovics", "id": "804aea02-1708-4cd9-be97-1b31965209e7", "title": "State House Lawn"}, "length": "219253", "position": "7", "id": "a6b07cf7-6332-4d38-9eb6-de14930a1262", "track_or_recording_length": "219253"}, {"artist-credit": [{"artist": {"sort-name": "Rovics, David", "id": "4d56eb9f-13b3-4f05-9db7-50195378d49f", "name": "David Rovics"}}], "number": "8", "artist-credit-phrase": "David Rovics", "recording": {"artist-credit": [{"artist": {"sort-name": "Rovics, David", "id": "4d56eb9f-13b3-4f05-9db7-50195378d49f", "name": "David Rovics"}}], "length": "281373", "artist-credit-phrase": "David Rovics", "id": "79e854da-382e-411c-a78a-c38de78a935a", "title": "They All Sang the Internationale"}, "length": "281373", "position": "8", "id": "d8937d7d-0515-4afe-b0bd-7251661ac9b5", "track_or_recording_length": "281373"}, {"artist-credit": [{"artist": {"sort-name": "Rovics, David", "id": "4d56eb9f-13b3-4f05-9db7-50195378d49f", "name": "David Rovics"}}], "number": "9", "artist-credit-phrase": "David Rovics", "recording": {"artist-credit": [{"artist": {"sort-name": "Rovics, David", "id": "4d56eb9f-13b3-4f05-9db7-50195378d49f", "name": "David Rovics"}}], "length": "195280", "artist-credit-phrase": "David Rovics", "id": "d825d000-3b02-4c6f-81cf-2fbbe0a00286", "title": "Kobane"}, "length": "195280", "position": "9", "id": "b3e4fc3e-c658-402c-92e0-10c0a5935937", "track_or_recording_length": "195280"}, {"artist-credit": [{"artist": {"sort-name": "Rovics, David", "id": "4d56eb9f-13b3-4f05-9db7-50195378d49f", "name": "David Rovics"}}], "number": "10", "artist-credit-phrase": "David Rovics", "recording": {"artist-credit": [{"artist": {"sort-name": "Rovics, David", "id": "4d56eb9f-13b3-4f05-9db7-50195378d49f", "name": "David Rovics"}}], "length": "222920", "artist-credit-phrase": "David Rovics", "id": "d0a9700b-c042-4235-b7c9-4e0030e7b84c", "title": "Joe Hill"}, "length": "222920", "position": "10", "id": "36c07599-a382-4535-bf2d-72e48713f69b", "track_or_recording_length": "222920"}, {"artist-credit": [{"artist": {"sort-name": "Rovics, David", "id": "4d56eb9f-13b3-4f05-9db7-50195378d49f", "name": "David Rovics"}}], "number": "11", "artist-credit-phrase": "David Rovics", "recording": {"artist-credit": [{"artist": {"sort-name": "Rovics, David", "id": "4d56eb9f-13b3-4f05-9db7-50195378d49f", "name": "David Rovics"}}], "length": "156960", "artist-credit-phrase": "David Rovics", "id": "ce3ddc86-a908-4a6e-8fae-30ee8edcbc6d", "title": "Facebook Song"}, "length": "156960", "position": "11", "id": "1e1c16bd-4050-4068-b57d-0a23c91d64fa", "track_or_recording_length": "156960"}, {"artist-credit": [{"artist": {"sort-name": "Rovics, David", "id": "4d56eb9f-13b3-4f05-9db7-50195378d49f", "name": "David Rovics"}}], "number": "12", "artist-credit-phrase": "David Rovics", "recording": {"artist-credit": [{"artist": {"sort-name": "Rovics, David", "id": "4d56eb9f-13b3-4f05-9db7-50195378d49f", "name": "David Rovics"}}], "length": "227040", "artist-credit-phrase": "David Rovics", "id": "be7a4e96-9fcb-433c-a218-74e15a0629fc", "title": "Douglas MacLeod"}, "length": "227040", "position": "12", "id": "4279831f-738c-49fd-a91d-741d2ee05c54", "track_or_recording_length": "227040"}, {"artist-credit": [{"artist": {"sort-name": "Rovics, David", "id": "4d56eb9f-13b3-4f05-9db7-50195378d49f", "name": "David Rovics"}}], "number": "13", "artist-credit-phrase": "David Rovics", "recording": {"artist-credit": [{"artist": {"sort-name": "Rovics, David", "id": "4d56eb9f-13b3-4f05-9db7-50195378d49f", "name": "David Rovics"}}], "length": "206746", "artist-credit-phrase": "David Rovics", "id": "edc58634-8767-4863-b0d9-ec622c7cce64", "title": "Frieden und Freiheit"}, "length": "206746", "position": "13", "id": "b858ae08-21bb-43fe-b8e8-79efaee637dc", "track_or_recording_length": "206746"}, {"recording": {"artist-credit": [{"artist": {"sort-name": "Rovics, David", "id": "4d56eb9f-13b3-4f05-9db7-50195378d49f", "name": "David Rovics"}}], "length": "168902", "artist-credit-phrase": "David Rovics", "id": "b81b7edd-1a25-4615-85af-722c9012016c", "title": "Ballad of CeCe McDonald"}, "artist-credit": [{"artist": {"sort-name": "Rovics, David", "id": "4d56eb9f-13b3-4f05-9db7-50195378d49f", "name": "David Rovics"}}], "length": "168906", "title": "Ballad of Cece McDonald", "position": "14", "artist-credit-phrase": "David Rovics", "track_or_recording_length": "168906", "id": "48710b96-63b6-44e7-bc8d-2feb1c0a5c67", "number": "14"}, {"artist-credit": [{"artist": {"sort-name": "Rovics, David", "id": "4d56eb9f-13b3-4f05-9db7-50195378d49f", "name": "David Rovics"}}], "number": "15", "artist-credit-phrase": "David Rovics", "recording": {"artist-credit": [{"artist": {"sort-name": "Rovics, David", "id": "4d56eb9f-13b3-4f05-9db7-50195378d49f", "name": "David Rovics"}}], "length": "171106", "artist-credit-phrase": "David Rovics", "id": "3b6afc48-f6e3-47cf-8a0b-d8f2bad86134", "title": "Christmas in a Tent"}, "length": "171106", "position": "15", "id": "1c912678-17ea-4839-9540-71cbd0732913", "track_or_recording_length": "171106"}, {"recording": {"artist-credit": [{"artist": {"sort-name": "Rovics, David", "id": "4d56eb9f-13b3-4f05-9db7-50195378d49f", "name": "David Rovics"}}], "length": "129053", "artist-credit-phrase": "David Rovics", "id": "516f6326-0728-46e8-8a26-8ecc8c2fc4f1", "title": "The Ball is Round"}, "artist-credit": [{"artist": {"sort-name": "Rovics, David", "id": "4d56eb9f-13b3-4f05-9db7-50195378d49f", "name": "David Rovics"}}], "length": "129053", "title": "The Ball Is Round", "position": "16", "artist-credit-phrase": "David Rovics", "track_or_recording_length": "129053", "id": "e607239f-fc8f-4983-a0cf-7c69d8effa96", "number": "16"}], "disc-count": 1}]}} \ No newline at end of file