File: test_wsxml_label.py

package info (click to toggle)
python-musicbrainz2 0.7.4-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd, wheezy
  • size: 648 kB
  • ctags: 881
  • sloc: python: 4,624; xml: 999; makefile: 14
file content (104 lines) | stat: -rw-r--r-- 3,144 bytes parent folder | download | duplicates (3)
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