1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
|
"""Tests for parsing artists using MbXmlParser."""
import unittest
from musicbrainz2.wsxml import MbXmlParser, ParseError
from musicbrainz2.model import NS_MMD_1
import StringIO
import os.path
VALID_DATA_DIR = os.path.join('test-data', 'valid')
INVALID_DATA_DIR = os.path.join('test-data', 'invalid')
VALID_LABEL_DIR = os.path.join(VALID_DATA_DIR, 'label')
def makeId(relativeUri, resType='label'):
return 'http://musicbrainz.org/%s/%s' % (resType, relativeUri)
class ParseLabelTest(unittest.TestCase):
def __init__(self, name):
unittest.TestCase.__init__(self, name)
def testLabelBasic(self):
f = os.path.join(VALID_LABEL_DIR, 'Atlantic_Records_1.xml')
md = MbXmlParser().parse(f)
label = md.getLabel()
self.failIf( label is None )
self.assertEquals(label.id,
makeId('50c384a2-0b44-401b-b893-8181173339c7'))
self.assertEquals(label.type, NS_MMD_1 + 'OriginalProduction')
self.assertEquals(label.name, 'Atlantic Records')
self.assertEquals(label.beginDate, '1947')
self.assertEquals(label.endDate, None)
self.assertEquals(label.country, 'US')
self.assertEquals(label.code, '121')
def testIncomplete(self):
f = os.path.join(VALID_LABEL_DIR, 'Atlantic_Records_3.xml')
md = MbXmlParser().parse(f)
label = md.getLabel()
self.failIf( label is None )
self.assertEquals(label.id,
makeId('50c384a2-0b44-401b-b893-8181173339c7'))
self.assertEquals(label.code, None)
def testLabelSubElements(self):
f = os.path.join(VALID_LABEL_DIR, 'Atlantic_Records_2.xml')
md = MbXmlParser().parse(f)
label = md.getLabel()
self.failIf( label is None )
self.assertEquals(label.type, NS_MMD_1 + 'Distributor')
self.assertEquals(label.name, 'Atlantic Records')
self.assertEquals(label.sortName, 'AR SortName')
self.assertEquals(label.disambiguation, 'fake')
self.assertEquals(label.beginDate, '1947')
self.assertEquals(label.endDate, '2047')
self.assertEquals(label.country, 'US')
self.assertEquals(label.code, '121')
self.assertEquals(len(label.aliases), 1)
alias = label.aliases[0]
self.assertEquals(alias.value, 'Atlantic Rec.')
self.assertEquals(label.getUniqueName(),
'Atlantic Records (fake)')
def testTags(self):
f = os.path.join(VALID_LABEL_DIR, 'Atlantic_Records_3.xml')
md = MbXmlParser().parse(f)
label = md.getLabel()
self.failIf( label is None )
self.assertEquals(label.getTag('american').count, None)
self.assertEquals(label.getTag('jazz').count, None)
self.assertEquals(label.getTag('blues').count, None)
def testSearchResults(self):
f = os.path.join(VALID_LABEL_DIR, 'search_result_1.xml')
md = MbXmlParser().parse(f)
self.assertEquals(md.labelResultsOffset, 0)
self.assertEquals(md.labelResultsCount, 2)
self.assertEquals(md.getLabelResultsOffset(), 0)
self.assertEquals(md.getLabelResultsCount(), 2)
results = md.labelResults
self.assertEquals(len(results), 2)
self.assertEquals(results[0].score, 100)
label1 = results[0].label
self.assertEquals(label1.name, 'Atlantic Records')
self.assertEquals(results[1].score, 46)
label2 = results[1].label
self.assertEquals(label2.name, 'DRO Atlantic')
# EOF
|