mirror of
https://github.com/fergalmoran/picard.git
synced 2025-12-24 02:09:56 +00:00
60 lines
1.9 KiB
Python
60 lines
1.9 KiB
Python
import unittest
|
|
from picard.metadata import Metadata
|
|
from picard.mbxml import track_to_metadata, release_to_metadata
|
|
from picard.webservice import XmlNode
|
|
|
|
class XmlNode(object):
|
|
|
|
def __init__(self, text=u'', children={}, attribs={}):
|
|
self.text = text
|
|
self.children = children
|
|
self.attribs = attribs
|
|
|
|
def __repr__(self):
|
|
return repr(self.__dict__)
|
|
|
|
def __getattr__(self, name):
|
|
try:
|
|
return self.children[name]
|
|
except KeyError:
|
|
try:
|
|
return self.attribs[name]
|
|
except KeyError:
|
|
raise AttributeError, name
|
|
|
|
|
|
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')]
|
|
})],
|
|
})
|
|
m = Metadata()
|
|
track_to_metadata(track, m)
|
|
self.failUnlessEqual('123', m['musicbrainz_trackid'])
|
|
self.failUnlessEqual('546', m['musicbrainz_artistid'])
|
|
self.failUnlessEqual('Foo', m['title'])
|
|
self.failUnlessEqual('Artist', m['artist'])
|
|
|
|
|
|
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')]
|
|
})],
|
|
})
|
|
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('Foo', m['album'])
|
|
self.failUnlessEqual('Artist', m['artist'])
|
|
self.failUnlessEqual('Artist', m['albumartist'])
|