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
|
"""Tests for the MbXmlParser class."""
import unittest
from musicbrainz2.wsxml import MbXmlParser, ParseError, _makeAbsoluteUri
import StringIO
import os.path
VALID_DATA_DIR = os.path.join('test-data', 'valid')
INVALID_DATA_DIR = os.path.join('test-data', 'invalid')
VALID_ARTIST_DIR = os.path.join(VALID_DATA_DIR, 'artist')
INVALID_ARTIST_DIR = os.path.join(INVALID_DATA_DIR, 'artist')
class BaseParserTest(unittest.TestCase):
"""Test the most basic cases: empty and invalid documents."""
def __init__(self, name):
unittest.TestCase.__init__(self, name)
def testEmptyValid(self):
tests = ('empty_1.xml', 'empty_2.xml')
for f in self._makeFiles(VALID_ARTIST_DIR, tests):
try:
MbXmlParser().parse(f)
except ParseError, e:
self.fail(f.name + ' ' + e.msg)
def testEmptyInvalid(self):
tests = ('empty_1.xml', 'empty_2.xml', 'empty_3.xml')
for f in self._makeFiles(INVALID_ARTIST_DIR, tests):
p = MbXmlParser()
try:
MbXmlParser().parse(f)
except ParseError:
pass
else:
self.fail(f.name + ' ' + f.name)
def testMakeAbsoluteUri(self):
self.assert_(_makeAbsoluteUri('http://mb.org/artist/', None) is None)
self.assertEquals('http://mb.org/artist/some_id',
_makeAbsoluteUri('http://mb.org/artist/', 'some_id'))
self.assertEquals('http://mb.org/artist/some_id',
_makeAbsoluteUri('http://mb.org/artist/',
'http://mb.org/artist/some_id'))
self.assertEquals('http://mb.org/ns/mmd-1.0#name',
_makeAbsoluteUri('http://mb.org/ns/mmd-1.0#', 'name'))
self.assertEquals('http://mb.org/ns/mmd-1.0#name',
_makeAbsoluteUri('http://mb.org/ns/mmd-1.0#',
'http://mb.org/ns/mmd-1.0#name'))
def _makeFiles(self, dir, basenames):
files = [ ]
for b in basenames:
files.append( file(os.path.join(dir, b)) )
return files
# EOF
|