Files
picard/test/test_mbxml.py
Lukáš Lalinský 757a7645f4 Simple mbxml test.
2007-02-24 15:41:02 +01:00

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'])