Skip to content

Commit

Permalink
Parse work language-list
Browse files Browse the repository at this point in the history
Fixes #235

Signed-off-by: Alastair Porter <[email protected]>
  • Loading branch information
alastair committed Jan 16, 2022
1 parent 7432f88 commit f4256f6
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 4 deletions.
3 changes: 2 additions & 1 deletion musicbrainzngs/mbxml.py
Original file line number Diff line number Diff line change
Expand Up @@ -548,7 +548,8 @@ def parse_work(work):
"iswc-list": parse_element_list,
"relation-list": parse_relation_list,
"annotation": parse_response_message,
"attribute-list": parse_work_attribute_list
"attribute-list": parse_work_attribute_list,
"language-list": parse_element_list,
}

result.update(parse_attributes(attribs, work))
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?><metadata xmlns="http://musicbrainz.org/ns/mmd-2.0#"><work type="Cantata" id="72c9aad2-3c95-4e3e-8a01-3974f8fef8eb"><title>Cantata, BuxWV 1 &quot;Accedite gentes, accurite populi&quot;</title><language>lat</language><relation-list target-type="series"><relation type="part of" type-id="b0d44366-cdf0-3acb-bee6-0f65a77a6ef0"><target>0790fa51-15d9-40a2-bca9-9c8eaaa96bef</target><ordering-key>1</ordering-key><direction>backward</direction><attribute-list><attribute value="BuxWV 1">number</attribute></attribute-list><series type="Catalogue" id="0790fa51-15d9-40a2-bca9-9c8eaaa96bef"><name>Buxtehude-Werke-Verzeichnis</name></series></relation></relation-list></work></metadata>
<?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://musicbrainz.org/ns/mmd-2.0#"><work id="72c9aad2-3c95-4e3e-8a01-3974f8fef8eb" type="Cantata" type-id="0db2f555-15f9-393f-af4c-739db5711146"><title>Cantata, BuxWV 1 "Accedite gentes, accurite populi"</title><language>lat</language><language-list><language>lat</language></language-list><relation-list target-type="series"><relation type="part of" type-id="b0d44366-cdf0-3acb-bee6-0f65a77a6ef0"><target>0790fa51-15d9-40a2-bca9-9c8eaaa96bef</target><ordering-key>1</ordering-key><direction>backward</direction><attribute-list><attribute type-id="a59c5830-5ec7-38fe-9a21-c7ea54f6650a" value="BuxWV 1">number</attribute></attribute-list><series id="0790fa51-15d9-40a2-bca9-9c8eaaa96bef" type="Catalogue" type-id="49482ff0-fc9e-3b8c-a2d0-30e84d9df002"><name>Buxtehude-Werke-Verzeichnis</name></series></relation></relation-list></work></metadata>
11 changes: 9 additions & 2 deletions test/test_mbxml_work.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ def testWorkAliases(self):
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)
Expand Down Expand Up @@ -65,5 +64,13 @@ def testWorkRelationAttributes(self):

# New attribute dict format
attributes = rels[0]["attributes"]
expected = {"attribute": "number", "value": "BuxWV 1"}
expected = {"attribute": "number",
"value": "BuxWV 1",
"type-id": "a59c5830-5ec7-38fe-9a21-c7ea54f6650a"}
self.assertEqual(expected, attributes[0])

def testWorkLanguage(self):
res = _common.open_and_parse_test_data(self.datadir, "72c9aad2-3c95-4e3e-8a01-3974f8fef8eb-series-rels.xml")
work = res["work"]
self.assertEqual(work["language"], "lat")
self.assertEqual(work["language-list"], ["lat"])

0 comments on commit f4256f6

Please sign in to comment.