def testWorkAttributes(self): res = _common.open_and_parse_test_data( self.datadir, "80737426-8ef3-3a9c-a3a6-9507afb93e93-aliases.xml") work_attrs = res["work"]["attribute-list"] self.assertEqual(len(work_attrs), 1) attr = work_attrs[0] expected = {"attribute": "Key", "value": "E-flat major"} self.assertEqual(expected, attr) res = _common.open_and_parse_test_data( self.datadir, "8e134b32-99b8-4e96-ae5c-426f3be85f4c-attributes.xml") work_attrs = res["work"]["attribute-list"] self.assertEqual(len(work_attrs), 3) expected = { "attribute": "Makam (Ottoman, Turkish)", "value": b"H\xc3\xbczzam".decode("utf-8") } self.assertEqual(expected, work_attrs[0]) expected = { "attribute": "Form (Ottoman, Turkish)", "value": b"Pe\xc5\x9frev".decode("utf-8") } self.assertEqual(expected, work_attrs[1]) expected = {"attribute": "Usul (Ottoman, Turkish)", "value": "Fahte"} self.assertEqual(expected, work_attrs[2])
def testArtistCredit(self): """ If the artist credit is the same in the track and recording, make sure that the information is replicated in both objects, otherwise have distinct ones. """ # If no artist-credit in the track, copy in the recording one res = _common.open_and_parse_test_data( self.datadir, "833d4c3a-2635-4b7a-83c4-4e560588f23a-recordings+artist-credits.xml" ) tracks = res["release"]["medium-list"][0]["track-list"] t1 = tracks[1] self.assertEqual(t1["artist-credit"], t1["recording"]["artist-credit"]) self.assertEqual("JT Bruce", t1["artist-credit-phrase"]) self.assertEqual(t1["recording"]["artist-credit-phrase"], t1["artist-credit-phrase"]) # Recording AC is different to track AC res = _common.open_and_parse_test_data( self.datadir, "fbe4490e-e366-4da2-a37a-82162d2f41a9-recordings+artist-credits.xml" ) tracks = res["release"]["medium-list"][0]["track-list"] t1 = tracks[1] self.assertNotEqual(t1["artist-credit"], t1["recording"]["artist-credit"]) self.assertEqual("H. Lichner", t1["artist-credit-phrase"]) self.assertNotEqual(t1["recording"]["artist-credit-phrase"], t1["artist-credit-phrase"])
def testWorkAliases(self): res = _common.open_and_parse_test_data( self.datadir, "80737426-8ef3-3a9c-a3a6-9507afb93e93-aliases.xml") aliases = res["work"]["alias-list"] self.assertEqual(len(aliases), 2) a0 = aliases[0] self.assertEqual(a0["alias"], 'Symphonie Nr. 3 Es-Dur, Op. 55 "Eroica"') self.assertEqual(a0["sort-name"], 'Symphonie Nr. 3 Es-Dur, Op. 55 "Eroica"') a1 = aliases[1] self.assertEqual(a1["alias"], 'Symphony No. 3, Op. 55 "Eroica"') self.assertEqual(a1["sort-name"], 'Symphony No. 3, Op. 55 "Eroica"') res = _common.open_and_parse_test_data( self.datadir, "3d7c7cd2-da79-37f4-98b8-ccfb1a4ac6c4-aliases.xml") aliases = res["work"]["alias-list"] self.assertEqual(len(aliases), 10) a0 = aliases[0] self.assertEqual(a0["alias"], "Adagio from Symphony No. 2 in E minor, Op. 27") self.assertEqual(a0["sort-name"], "Adagio from Symphony No. 2 in E minor, Op. 27")
def testWorkAliases(self): res = _common.open_and_parse_test_data(self.datadir, "80737426-8ef3-3a9c-a3a6-9507afb93e93-aliases.xml") aliases = res["work"]["alias-list"] self.assertEqual(len(aliases), 2) a0 = aliases[0] self.assertEqual(a0["alias"], 'Symphonie Nr. 3 Es-Dur, Op. 55 "Eroica"') self.assertEqual(a0["sort-name"], 'Symphonie Nr. 3 Es-Dur, Op. 55 "Eroica"') a1 = aliases[1] self.assertEqual(a1["alias"], 'Symphony No. 3, Op. 55 "Eroica"') self.assertEqual(a1["sort-name"], 'Symphony No. 3, Op. 55 "Eroica"') work_attrs = res["work"]["attribute-list"] self.assertEqual(len(work_attrs), 1) attr = work_attrs[0] self.assertEqual(attr["type"], "Key") self.assertEqual(attr["attribute"], "E-flat major") res = _common.open_and_parse_test_data(self.datadir, "3d7c7cd2-da79-37f4-98b8-ccfb1a4ac6c4-aliases.xml") aliases = res["work"]["alias-list"] self.assertEqual(len(aliases), 10) a0 = aliases[0] self.assertEqual(a0["alias"], "Adagio from Symphony No. 2 in E minor, Op. 27") self.assertEqual(a0["sort-name"], "Adagio from Symphony No. 2 in E minor, Op. 27")
def testTrackNumber(self): """ Test that track number (number or text) and track position (always an increasing number) are both read properly """ res = _common.open_and_parse_test_data( self.datadir, "212895ca-ee36-439a-a824-d2620cd10461-recordings.xml") tracks = res["release"]["medium-list"][0]["track-list"] # This release doesn't number intro tracks as numbered tracks, # so position and number get 'out of sync' self.assertEqual(['1', '2', '3'], [t["position"] for t in tracks[:3]]) self.assertEqual(['', '1', '2'], [t["number"] for t in tracks[:3]]) res = _common.open_and_parse_test_data( self.datadir, "a81f3c15-2f36-47c7-9b0f-f684a8b0530f-recordings.xml") tracks = res["release"]["medium-list"][0]["track-list"] self.assertEqual(['1', '2'], [t["position"] for t in tracks]) self.assertEqual(['A', 'B'], [t["number"] for t in tracks]) res = _common.open_and_parse_test_data( self.datadir, "9ce41d09-40e4-4d33-af0c-7fed1e558dba-recordings.xml") tracks = res["release"]["medium-list"][0]["data-track-list"] self.assertEqual(list(map(str, range(1, 199))), [t["position"] for t in tracks]) self.assertEqual(list(map(str, range(1, 199))), [t["number"] for t in tracks])
def testTrackCount(self): """ Test that the number of tracks (offset-count) is returned. """ # discid without pregap track res = _common.open_and_parse_test_data(self.datadir, "xp5tz6rE4OHrBafj0bLfDRMGK48-.xml") self.assertEqual(res["disc"]["offset-count"], 8) # discid with pregap track # (the number of tracks does not count the pregap "track") res = _common.open_and_parse_test_data(self.datadir, "f7agNZK1HMQ2WUWq9bwDymw9aHA-.xml") self.assertEqual(res["disc"]["offset-count"], 13)
def testReleaseList(self): """ Test that a release list of correct size is given. """ res = _common.open_and_parse_test_data(self.datadir, "xp5tz6rE4OHrBafj0bLfDRMGK48-.xml") self.assertEqual(res["disc"]["release-count"], 3) self.assertEqual(res["disc"]["release-count"], len(res["disc"]["release-list"]))
def testAnnotations(self): res = _common.open_and_parse_test_data( self.datadir, "d00cec5f-f9bc-4235-a54f-6639a02d4e4c-annotation.xml") inst = res["instrument"] self.assertEqual(inst["annotation"]["text"], "Hornbostel-Sachs: 412.22")
def testTypesExist(self): res = _common.open_and_parse_test_data(self.datadir, "f52bc6a1-c848-49e6-85de-f8f53459a624.xml") rg = res["release-group"] self.assertTrue("type" in rg) self.assertTrue("primary-type" in rg) self.assertTrue("secondary-type-list" in rg)
def testTypesResult(self): res = _common.open_and_parse_test_data(self.datadir, "f52bc6a1-c848-49e6-85de-f8f53459a624.xml") rg = res["release-group"] self.assertEqual("Soundtrack", rg["type"]) self.assertEqual("Album", rg["primary-type"]) self.assertEqual(["Soundtrack"], rg["secondary-type-list"])
def testDiscId(self): """ Test that the id attribute of the disc is read. """ res = _common.open_and_parse_test_data( self.datadir, "xp5tz6rE4OHrBafj0bLfDRMGK48-.xml") self.assertEqual(res["disc"]["id"], "xp5tz6rE4OHrBafj0bLfDRMGK48-")
def testTrackLength(self): """ Test that if there is a track length, then `track_or_recording_length` has that, but if not then fill the value from the recording length """ res = _common.open_and_parse_test_data(self.datadir, "b66ebe6d-a577-4af8-9a2e-a029b2147716-recordings.xml") tracks = res["release"]["medium-list"][0]["track-list"] # No track length and recording length t1 = tracks[0] self.assertTrue("length" not in t1) self.assertEqual("180000", t1["recording"]["length"]) self.assertEqual("180000", t1["track_or_recording_length"]) # Track length and recording length same t2 = tracks[1] self.assertEqual("279000", t2["length"]) self.assertEqual("279000", t2["recording"]["length"]) self.assertEqual("279000", t2["track_or_recording_length"]) # Track length and recording length different t3 = tracks[2] self.assertEqual("60000", t3["length"]) self.assertEqual("80000", t3["recording"]["length"]) self.assertEqual("60000", t3["track_or_recording_length"]) # No track lengths t4 = tracks[3] self.assertTrue("length" not in t4["recording"]) self.assertTrue("length" not in t4) self.assertTrue("track_or_recording_length" not in t4)
def testCollectionReleases(self): """ Test that the list of releases is given. """ res = _common.open_and_parse_test_data(self.datadir, "0b15c97c-8eb8-4b4f-81c3-0eb24266a2ac-releases.xml") self.assertEqual(res["collection"]["release-count"], 400) self.assertTrue("release-list" in res["collection"])
def testTypesResult(self): res = _common.open_and_parse_test_data( self.datadir, "f52bc6a1-c848-49e6-85de-f8f53459a624.xml") rg = res["release-group"] self.assertEqual("Soundtrack", rg["type"]) self.assertEqual("Album", rg["primary-type"]) self.assertEqual(["Soundtrack"], rg["secondary-type-list"])
def testTypesExist(self): res = _common.open_and_parse_test_data( self.datadir, "f52bc6a1-c848-49e6-85de-f8f53459a624.xml") rg = res["release-group"] self.assertTrue("type" in rg) self.assertTrue("primary-type" in rg) self.assertTrue("secondary-type-list" in rg)
def testEventElements(self): filename = "e921686d-ba86-4122-bc3b-777aec90d231-tags-artist-rels.xml" res = _common.open_and_parse_test_data(self.datadir, filename) e = res["event"] keys = ["name", "life-span", "time", "setlist", "artist-relation-list", "tag-list"] for k in keys: self.assertTrue(k in e, "key %s in dict" % (k, ))
def testTrackId(self): """ Test that the id attribute of tracks is read. """ res = _common.open_and_parse_test_data(self.datadir, "212895ca-ee36-439a-a824-d2620cd10461-recordings.xml") tracks = res["release"]["medium-list"][0]["track-list"] map(lambda t: self.assertTrue("id" in t), tracks)
def testTrackNumber(self): """ Test that track number (number or text) and track position (always an increasing number) are both read properly """ res = _common.open_and_parse_test_data(self.datadir, "212895ca-ee36-439a-a824-d2620cd10461-recordings.xml") tracks = res["release"]["medium-list"][0]["track-list"] # This release doesn't number intro tracks as numbered tracks, # so position and number get 'out of sync' self.assertEqual(['1', '2', '3'], [t["position"] for t in tracks[:3]]) self.assertEqual(['', '1', '2'], [t["number"] for t in tracks[:3]]) res = _common.open_and_parse_test_data(self.datadir, "a81f3c15-2f36-47c7-9b0f-f684a8b0530f-recordings.xml") tracks = res["release"]["medium-list"][0]["track-list"] self.assertEqual(['1', '2'], [t["position"] for t in tracks]) self.assertEqual(['A', 'B'], [t["number"] for t in tracks])
def testPlace(self): event_id = "770fb0b4-0ad8-4774-9275-099b66627355" res = _common.open_and_parse_test_data(self.datadir, "%s-place-rels.xml" % event_id) place = res["event"]["place-relation-list"][0]["place"] self.assertEqual("7643f13a-dcda-4db4-8196-3ffcc1b99ab7", place["id"]) self.assertEqual("50.33556", place["coordinates"]["latitude"]) self.assertEqual("6.9475", place["coordinates"]["longitude"])
def testDataTracklist(self): """ Test that data tracklist are parsed. """ res = _common.open_and_parse_test_data(self.datadir, "9ce41d09-40e4-4d33-af0c-7fed1e558dba-recordings.xml") medium = res["release"]["medium-list"][0] self.assertTrue("data-track-list" in medium) self.assertEqual(198, len(medium["data-track-list"]))
def testListFromBrowse(self): filename = "browse-area-74e50e58-5deb-4b99-93a2-decbb365c07f-annotation.xml" res = _common.open_and_parse_test_data(self.datadir, filename) self.assertEqual(395, res["place-count"]) self.assertEqual(25, len(res["place-list"])) self.assertTrue(res["place-list"][13]["annotation"]["text"].startswith("was later renamed"))
def testCollectionInfo(self): """ Test that the id, name and author are given. """ res = _common.open_and_parse_test_data(self.datadir, "0b15c97c-8eb8-4b4f-81c3-0eb24266a2ac-releases.xml") self.assertEqual(res["collection"]["id"], "0b15c97c-8eb8-4b4f-81c3-0eb24266a2ac") self.assertEqual(res["collection"]["name"], "My Collection") self.assertEqual(res["collection"]["editor"], "JonnyJD")
def testCollectionType(self): """ Test if the type of the collection is parsed correctly. """ res = _common.open_and_parse_test_data(self.datadir, "0b15c97c-8eb8-4b4f-81c3-0eb24266a2ac-releases.xml") self.assertEqual(res["collection"]["entity-type"], "release") self.assertEqual(res["collection"]["type"], "Release")
def testArtistAliases(self): res = _common.open_and_parse_test_data(self.datadir, "0e43fe9d-c472-4b62-be9e-55f971a023e1-aliases.xml") aliases = res["artist"]["alias-list"] self.assertEqual(len(aliases), 28) a0 = aliases[0] self.assertEqual(a0["alias"], "Prokofief") self.assertEqual(a0["sort-name"], "Prokofief") a17 = aliases[17] self.assertEqual(a17["alias"], "Sergei Sergeyevich Prokofiev") self.assertEqual(a17["sort-name"], "Prokofiev, Sergei Sergeyevich") self.assertEqual(a17["locale"], "en") self.assertEqual(a17["primary"], "primary") res = _common.open_and_parse_test_data(self.datadir, "2736bad5-6280-4c8f-92c8-27a5e63bbab2-aliases.xml") self.assertFalse("alias-list" in res["artist"])
def testData(self): res = _common.open_and_parse_test_data(self.datadir, "9447c0af-5569-48f2-b4c5-241105d58c91.xml") inst = res["instrument"] self.assertEqual(inst["id"], "9447c0af-5569-48f2-b4c5-241105d58c91") self.assertEqual(inst["name"], "bass saxophone") self.assertEqual(inst["type"], "Wind instrument") self.assertTrue(inst["description"].startswith("The bass saxophone"))
def testTags(self): res = _common.open_and_parse_test_data(self.datadir, "6505f98c-f698-4406-8bf4-8ca43d05c36f-tags.xml") inst = res["instrument"] tags = inst["tag-list"] self.assertEqual(len(tags), 3) self.assertEqual(tags[0]["name"], "fixme") self.assertEqual(tags[0]["count"], "1")
def testArtistTargets(self): res = _common.open_and_parse_test_data( self.datadir, "b3785a55-2cf6-497d-b8e3-cfa21a36f997-artist-rels.xml") self.assertTrue( 'target-credit' in res['artist']['artist-relation-list'][0]) self.assertEqual( res['artist']['artist-relation-list'][0]["target-credit"], "TAO")
def testData(self): res = _common.open_and_parse_test_data( self.datadir, "9447c0af-5569-48f2-b4c5-241105d58c91.xml") inst = res["instrument"] self.assertEqual(inst["id"], "9447c0af-5569-48f2-b4c5-241105d58c91") self.assertEqual(inst["name"], "bass saxophone") self.assertEqual(inst["type"], "Wind instrument") self.assertTrue(inst["description"].startswith("The bass saxophone"))
def testVideo(self): """ Test that the video attribute is parsed. """ res = _common.open_and_parse_test_data(self.datadir, "fe29e7f0-eb46-44ba-9348-694166f47885-recordings.xml") trackswithoutvideo = res["release"]["medium-list"][0]["track-list"] trackswithvideo = res["release"]["medium-list"][2]["track-list"] map(lambda t: self.assertTrue("video" not in ["recording"]), trackswithoutvideo) map(lambda t: self.assertEqual("true", t["recording"]["video"]), trackswithvideo)
def testUrlRels(self): res = _common.open_and_parse_test_data(self.datadir, "d00cec5f-f9bc-4235-a54f-6639a02d4e4c-url-rels.xml") inst = res["instrument"] rels = inst["url-relation-list"] self.assertEqual(len(rels), 3) self.assertEqual(rels[0]["type"], "information page") self.assertEqual(rels[0]["type-id"], "0e62afec-12f3-3d0f-b122-956207839854") self.assertTrue(rels[0]["target"].startswith("http://en.wikisource"))
def testWorkAttributes(self): res = _common.open_and_parse_test_data(self.datadir, "80737426-8ef3-3a9c-a3a6-9507afb93e93-aliases.xml") work_attrs = res["work"]["attribute-list"] self.assertEqual(len(work_attrs), 1) attr = work_attrs[0] expected = {"attribute": "Key", "value": "E-flat major"} self.assertEqual(expected, attr) res = _common.open_and_parse_test_data(self.datadir, "8e134b32-99b8-4e96-ae5c-426f3be85f4c-attributes.xml") work_attrs = res["work"]["attribute-list"] self.assertEqual(len(work_attrs), 3) expected = {"attribute": "Makam (Ottoman, Turkish)", "value": b"H\xc3\xbczzam".decode("utf-8")} self.assertEqual(expected, work_attrs[0]) expected = {"attribute": "Form (Ottoman, Turkish)", "value": b"Pe\xc5\x9frev".decode("utf-8")} self.assertEqual(expected, work_attrs[1]) expected = {"attribute": "Usul (Ottoman, Turkish)", "value": "Fahte"} self.assertEqual(expected, work_attrs[2])
def testTags(self): res = _common.open_and_parse_test_data( self.datadir, "6505f98c-f698-4406-8bf4-8ca43d05c36f-tags.xml") inst = res["instrument"] tags = inst["tag-list"] self.assertEqual(len(tags), 3) self.assertEqual(tags[0]["name"], "fixme") self.assertEqual(tags[0]["count"], "1")
def testArtistAliases(self): res = _common.open_and_parse_test_data( self.datadir, "0e43fe9d-c472-4b62-be9e-55f971a023e1-aliases.xml") aliases = res["artist"]["alias-list"] self.assertEqual(len(aliases), 28) a0 = aliases[0] self.assertEqual(a0["alias"], "Prokofief") self.assertEqual(a0["sort-name"], "Prokofief") a17 = aliases[17] self.assertEqual(a17["alias"], "Sergei Sergeyevich Prokofiev") self.assertEqual(a17["sort-name"], "Prokofiev, Sergei Sergeyevich") self.assertEqual(a17["locale"], "en") self.assertEqual(a17["primary"], "primary") res = _common.open_and_parse_test_data( self.datadir, "2736bad5-6280-4c8f-92c8-27a5e63bbab2-aliases.xml") self.assertFalse("alias-list" in res["artist"])
def testOffsets(self): """ Test that the correct list of offsets is returned. """ res = _common.open_and_parse_test_data(self.datadir, "xp5tz6rE4OHrBafj0bLfDRMGK48-.xml") offsets_res = res["disc"]["offset-list"] offsets_correct = [182, 33322, 52597, 73510, 98882, 136180, 169185, 187490] for i in range(len(offsets_correct)): self.assertEqual(offsets_res[i], offsets_correct[i]) self.assertTrue(isinstance(offsets_res[i], int))
def testCollectionPlaces(self): res = _common.open_and_parse_test_data(self.datadir, "855b134e-9a3b-4717-8df8-8c4838d89924-places.xml") coll = res["collection"] self.assertEqual(coll["id"], "855b134e-9a3b-4717-8df8-8c4838d89924") self.assertEqual(coll["name"], "place collection") self.assertEqual(coll["editor"], "alastairp") self.assertEqual(coll["entity-type"], "place") self.assertEqual(coll["type"], "Place") self.assertEqual(coll["place-count"], 1) self.assertEqual(len(coll["place-list"]), 1)
def testCollectionArtists(self): res = _common.open_and_parse_test_data(self.datadir, "29611d8b-b3ad-4ffb-acb5-27f77342a5b0-artists.xml") coll = res["collection"] self.assertEqual(coll["id"], "29611d8b-b3ad-4ffb-acb5-27f77342a5b0") self.assertEqual(coll["name"], "artist collection") self.assertEqual(coll["editor"], "alastairp") self.assertEqual(coll["entity-type"], "artist") self.assertEqual(coll["type"], "Artist") self.assertEqual(coll["artist-count"], 1) self.assertEqual(len(coll["artist-list"]), 1)
def testCollectionEvents(self): res = _common.open_and_parse_test_data(self.datadir, "20562e36-c7cc-44fb-96b4-486d51a1174b-events.xml") coll = res["collection"] self.assertEqual(coll["id"], "20562e36-c7cc-44fb-96b4-486d51a1174b") self.assertEqual(coll["name"], "event collection") self.assertEqual(coll["editor"], "alastairp") self.assertEqual(coll["entity-type"], "event") self.assertEqual(coll["type"], "Event") self.assertEqual(coll["event-count"], 1) self.assertEqual(len(coll["event-list"]), 1)
def testCollectionWorks(self): res = _common.open_and_parse_test_data(self.datadir, "2326c2e8-be4b-4300-acc6-dbd0adf5645b-works.xml") coll = res["collection"] self.assertEqual(coll["id"], "2326c2e8-be4b-4300-acc6-dbd0adf5645b") self.assertEqual(coll["name"], "work collection") self.assertEqual(coll["editor"], "alastairp") self.assertEqual(coll["entity-type"], "work") self.assertEqual(coll["type"], "Work") self.assertEqual(coll["work-count"], 1) self.assertEqual(len(coll["work-list"]), 1)
def testCollectionRecordings(self): res = _common.open_and_parse_test_data(self.datadir, "a91320b2-fd2f-4a93-9e4e-603d16d514b6-recordings.xml") coll = res["collection"] self.assertEqual(coll["id"], "a91320b2-fd2f-4a93-9e4e-603d16d514b6") self.assertEqual(coll["name"], "recording collection") self.assertEqual(coll["editor"], "alastairp") self.assertEqual(coll["entity-type"], "recording") self.assertEqual(coll["type"], "Recording") self.assertEqual(coll["recording-count"], 1) self.assertEqual(len(coll["recording-list"]), 1)
def testEventElements(self): filename = "e921686d-ba86-4122-bc3b-777aec90d231-tags-artist-rels.xml" res = _common.open_and_parse_test_data(self.datadir, filename) e = res["event"] keys = [ "name", "life-span", "time", "setlist", "artist-relation-list", "tag-list" ] for k in keys: self.assertTrue(k in e, "key %s in dict" % (k, ))
def testCollectionArtists(self): res = _common.open_and_parse_test_data( self.datadir, "29611d8b-b3ad-4ffb-acb5-27f77342a5b0-artists.xml") coll = res["collection"] self.assertEqual(coll["id"], "29611d8b-b3ad-4ffb-acb5-27f77342a5b0") self.assertEqual(coll["name"], "artist collection") self.assertEqual(coll["editor"], "alastairp") self.assertEqual(coll["entity-type"], "artist") self.assertEqual(coll["type"], "Artist") self.assertEqual(coll["artist-count"], 1) self.assertEqual(len(coll["artist-list"]), 1)
def testCollectionWorks(self): res = _common.open_and_parse_test_data( self.datadir, "2326c2e8-be4b-4300-acc6-dbd0adf5645b-works.xml") coll = res["collection"] self.assertEqual(coll["id"], "2326c2e8-be4b-4300-acc6-dbd0adf5645b") self.assertEqual(coll["name"], "work collection") self.assertEqual(coll["editor"], "alastairp") self.assertEqual(coll["entity-type"], "work") self.assertEqual(coll["type"], "Work") self.assertEqual(coll["work-count"], 1) self.assertEqual(len(coll["work-list"]), 1)
def testCollectionPlaces(self): res = _common.open_and_parse_test_data( self.datadir, "855b134e-9a3b-4717-8df8-8c4838d89924-places.xml") coll = res["collection"] self.assertEqual(coll["id"], "855b134e-9a3b-4717-8df8-8c4838d89924") self.assertEqual(coll["name"], "place collection") self.assertEqual(coll["editor"], "alastairp") self.assertEqual(coll["entity-type"], "place") self.assertEqual(coll["type"], "Place") self.assertEqual(coll["place-count"], 1) self.assertEqual(len(coll["place-list"]), 1)
def testUrlRels(self): res = _common.open_and_parse_test_data( self.datadir, "d00cec5f-f9bc-4235-a54f-6639a02d4e4c-url-rels.xml") inst = res["instrument"] rels = inst["url-relation-list"] self.assertEqual(len(rels), 3) self.assertEqual(rels[0]["type"], "information page") self.assertEqual(rels[0]["type-id"], "0e62afec-12f3-3d0f-b122-956207839854") self.assertTrue(rels[0]["target"].startswith("http://en.wikisource"))
def testInstrumentRels(self): res = _common.open_and_parse_test_data(self.datadir, "01ba56a2-4306-493d-8088-c7e9b671c74e-instrument-rels.xml") inst = res["instrument"] rels = inst["instrument-relation-list"] self.assertEqual(len(rels), 3) self.assertEqual(rels[1]["type"], "children") self.assertEqual(rels[1]["type-id"], "12678b88-1adb-3536-890e-9b39b9a14b2d") self.assertEqual(rels[1]["target"], "ad09a4ed-d1b6-47c3-ac85-acb531244a4d") self.assertEqual(rels[1]["instrument"]["id"], "ad09a4ed-d1b6-47c3-ac85-acb531244a4d") self.assertTrue(rels[1]["instrument"]["name"].startswith(b"kemen\xc3\xa7e".decode("utf-8")))
def testAliases(self): res = _common.open_and_parse_test_data(self.datadir, "6505f98c-f698-4406-8bf4-8ca43d05c36f-aliases.xml") inst = res["instrument"] aliases = inst["alias-list"] self.assertEqual(len(aliases), 14) self.assertEqual(aliases[1]["locale"], "it") self.assertEqual(aliases[1]["type"], "Instrument name") self.assertEqual(aliases[1]["primary"], "primary") self.assertEqual(aliases[1]["sort-name"], "Basso") self.assertEqual(aliases[1]["alias"], "Basso")
def testCollectionEvents(self): res = _common.open_and_parse_test_data( self.datadir, "20562e36-c7cc-44fb-96b4-486d51a1174b-events.xml") coll = res["collection"] self.assertEqual(coll["id"], "20562e36-c7cc-44fb-96b4-486d51a1174b") self.assertEqual(coll["name"], "event collection") self.assertEqual(coll["editor"], "alastairp") self.assertEqual(coll["entity-type"], "event") self.assertEqual(coll["type"], "Event") self.assertEqual(coll["event-count"], 1) self.assertEqual(len(coll["event-list"]), 1)
def testPregapTrack(self): """ Test that the pregap track is parsed if it exists. """ res = _common.open_and_parse_test_data(self.datadir, "8eb2b179-643d-3507-b64c-29fcc6745156-recordings.xml") medium = res["release"]["medium-list"][0] self.assertTrue("pregap" in medium) self.assertEqual("0", medium["pregap"]["position"]) self.assertEqual("0", medium["pregap"]["number"]) self.assertEqual("35000", medium["pregap"]["length"]) self.assertEqual("[untitled]", medium["pregap"]["recording"]["title"])
def testCollectionRecordings(self): res = _common.open_and_parse_test_data( self.datadir, "a91320b2-fd2f-4a93-9e4e-603d16d514b6-recordings.xml") coll = res["collection"] self.assertEqual(coll["id"], "a91320b2-fd2f-4a93-9e4e-603d16d514b6") self.assertEqual(coll["name"], "recording collection") self.assertEqual(coll["editor"], "alastairp") self.assertEqual(coll["entity-type"], "recording") self.assertEqual(coll["type"], "Recording") self.assertEqual(coll["recording-count"], 1) self.assertEqual(len(coll["recording-list"]), 1)
def testAliases(self): res = _common.open_and_parse_test_data( self.datadir, "6505f98c-f698-4406-8bf4-8ca43d05c36f-aliases.xml") inst = res["instrument"] aliases = inst["alias-list"] self.assertEqual(len(aliases), 14) self.assertEqual(aliases[1]["locale"], "it") self.assertEqual(aliases[1]["type"], "Instrument name") self.assertEqual(aliases[1]["primary"], "primary") self.assertEqual(aliases[1]["sort-name"], "Basso") self.assertEqual(aliases[1]["alias"], "Basso")