"""Tests for SOX"""
from unittest import TestCase, makeSuite, TestSuite
from cStringIO import StringIO
from xml.sax import InputSource
from peak.util import SOX
def stream(str):
inpsrc = InputSource()
inpsrc.setByteStream(StringIO(str))
return inpsrc
class SOXTest(TestCase):
text = ""
def setUp(self):
self.object = SOX.load(stream(self.text))
class Simple(SOXTest):
text = """TEXT"""
def checkTop(self):
assert self.object.documentElement._name == 'top'
def checkNodelist(self):
object = self.object
top = object._get('top')
assert len(top)==1
assert object.top is top
def checkText(self):
t = []
for n in self.object.documentElement._allNodes:
if n == str(n): t.append(n)
assert ''.join(t) == 'TEXT'
def checkAttrs(self):
assert self.object.documentElement.foo=='bar'
assert self.object.documentElement.baz=='spam'
TestClasses = (
Simple,
)
def test_suite():
s = []
for t in TestClasses:
s.append(makeSuite(t,'check'))
return TestSuite(s)