Replace unittests in test_mbxml.py and modify functions in mbxml.py to parse the new XML for tracks (recordings) and releases.

This commit is contained in:
Michael Wiencek
2011-05-19 11:21:21 -05:00
parent d01d2fe030
commit 720ea96e25
2 changed files with 111 additions and 68 deletions

View File

@@ -28,32 +28,81 @@ class TrackTest(unittest.TestCase):
def test_1(self):
track = XmlNode(attribs={'id': '123'}, children={
'title': [XmlNode(text='Foo')],
'artist': [XmlNode(attribs={'id': '546'}, children={
'name': [XmlNode(text='Artist')]
})],
'length': [XmlNode(text='180000')],
'artist_credit': [XmlNode(children={
'name_credit': [XmlNode(attribs={'joinphrase': ' & '}, children={
'artist': [XmlNode(attribs={'id': '456'}, children={
'name': [XmlNode(text='Foo Bar')],
'sort_name': [XmlNode(text='Bar, Foo')]
})]
}), XmlNode(children={
'artist': [XmlNode(attribs={'id': '789'}, children={
'name': [XmlNode(text='Baz')],
'sort_name': [XmlNode(text='Baz')]
})]
})]
})]
})
m = Metadata()
track_to_metadata(track, m)
self.failUnlessEqual('123', m['musicbrainz_trackid'])
self.failUnlessEqual('546', m['musicbrainz_artistid'])
self.failUnlessEqual('456; 789', m['musicbrainz_artistid'])
self.failUnlessEqual('Foo', m['title'])
self.failUnlessEqual('Artist', m['artist'])
self.failUnlessEqual('Foo Bar & Baz', m['artist'])
self.failUnlessEqual('Bar, Foo & Baz', m['artistsort'])
class ReleaseTest(unittest.TestCase):
def test_1(self):
release = XmlNode(attribs={'id': '123'}, children={
'title': [XmlNode(text='Foo')],
'artist': [XmlNode(attribs={'id': '546'}, children={
'name': [XmlNode(text='Artist')]
'status': [XmlNode(text='Official')],
'text_representation': [XmlNode(children={
'language': [XmlNode(text='eng')],
'script': [XmlNode(text='Latn')]
})],
'artist_credit': [XmlNode(children={
'name_credit': [XmlNode(attribs={'joinphrase': ' & '}, children={
'artist': [XmlNode(attribs={'id': '456'}, children={
'name': [XmlNode(text='Foo Bar')],
'sort_name': [XmlNode(text='Bar, Foo')]
})]
}), XmlNode(children={
'artist': [XmlNode(attribs={'id': '789'}, children={
'name': [XmlNode(text='Baz')],
'sort_name': [XmlNode(text='Baz')]
})]
})]
})],
'date': [XmlNode(text='2009-08-07')],
'country': [XmlNode(text='GB')],
'barcode': [XmlNode(text='012345678929')],
'asin': [XmlNode(text='B123456789')],
'label_info_list': [XmlNode(attribs={'count': '1'}, children={
'label_info': [XmlNode(children={
'catalog_number': [XmlNode(text='ABC 123')],
'label': [XmlNode(children={
'name': [XmlNode(text='ABC')]
})]
})]
})]
})
m = Metadata()
release_to_metadata(release, m)
self.failUnlessEqual('123', m['musicbrainz_albumid'])
self.failUnlessEqual('546', m['musicbrainz_artistid'])
self.failUnlessEqual('546', m['musicbrainz_albumartistid'])
self.failUnlessEqual('456; 789', m['musicbrainz_artistid'])
self.failUnlessEqual('456; 789', m['musicbrainz_albumartistid'])
self.failUnlessEqual('Foo', m['album'])
self.failUnlessEqual('Artist', m['artist'])
self.failUnlessEqual('Artist', m['albumartist'])
self.failUnlessEqual('official', m['releasestatus'])
self.failUnlessEqual('eng', m['language'])
self.failUnlessEqual('Latn', m['script'])
self.failUnlessEqual('Foo Bar & Baz', m['artist'])
self.failUnlessEqual('Foo Bar & Baz', m['albumartist'])
self.failUnlessEqual('Bar, Foo & Baz', m['artistsort'])
self.failUnlessEqual('Bar, Foo & Baz', m['albumartistsort'])
self.failUnlessEqual('2009-08-07', m['date'])
self.failUnlessEqual('GB', m['releasecountry'])
self.failUnlessEqual('012345678929', m['barcode'])
self.failUnlessEqual('B123456789', m['asin'])
self.failUnlessEqual('ABC', m['label'])
self.failUnlessEqual('ABC 123', m['catalognumber'])