Home | Trees | Indices | Help |
|
---|
|
1 # -*- coding: utf-8 -*- 2 3 """ 4 Test cases related to DTD parsing and validation 5 """ 6 7 import unittest 8 9 from common_imports import etree, StringIO, doctest 10 from common_imports import HelperTestCase, fileInTestDir 111597 9817 parse = etree.parse 18 tree = parse(fileInTestDir("test.xml")) 19 root = tree.getroot() 20 21 dtd = etree.DTD(fileInTestDir("test.dtd")) 22 self.assert_(dtd.validate(root))2325 root = etree.XML("<b/>") 26 dtd = etree.DTD(StringIO("<!ELEMENT b EMPTY>")) 27 self.assert_(dtd.validate(root))2830 fromstring = etree.fromstring 31 parser = etree.XMLParser(dtd_validation=True) 32 xml = '<!DOCTYPE b SYSTEM "%s"><b><a/></b>' % fileInTestDir("test.dtd") 33 self.assertRaises(etree.XMLSyntaxError, 34 fromstring, xml, parser=parser)3537 root = etree.XML("<b><a/></b>") 38 dtd = etree.DTD(StringIO("<!ELEMENT b EMPTY>")) 39 self.assertRaises(etree.DocumentInvalid, dtd.assertValid, root)4042 root = etree.XML("<b><a/></b>") 43 dtd = etree.DTD(StringIO("<!ELEMENT b (a)><!ELEMENT a EMPTY>")) 44 dtd.assertValid(root)4547 root = etree.XML(''' 48 <!DOCTYPE b SYSTEM "none" [ 49 <!ELEMENT b (a)> 50 <!ELEMENT a EMPTY> 51 ]> 52 <b><a/></b> 53 ''') 54 dtd = etree.ElementTree(root).docinfo.internalDTD 55 self.assert_(dtd) 56 dtd.assertValid(root)5759 root = etree.XML(''' 60 <!DOCTYPE b SYSTEM "none" [ 61 <!ELEMENT b (a)> 62 <!ELEMENT a (c)> 63 <!ELEMENT c EMPTY> 64 ]> 65 <b><a/></b> 66 ''') 67 dtd = etree.ElementTree(root).docinfo.internalDTD 68 self.assert_(dtd) 69 self.assertFalse(dtd.validate(root))70 7476 parser = etree.XMLParser(attribute_defaults=True) 77 78 tree = etree.parse(fileInTestDir('test.xml'), parser) 79 root = tree.getroot() 80 81 self.assertEquals( 82 "valueA", 83 root.get("default")) 84 self.assertEquals( 85 "valueB", 86 root[0].get("default"))87100 suite = unittest.TestSuite() 101 suite.addTests([unittest.makeSuite(ETreeDtdTestCase)]) 102 suite.addTests( 103 [doctest.DocFileSuite('../../../doc/validation.txt')]) 104 return suite105 106 if __name__ == '__main__': 107 print 'to test use test.py %s' % __file__ 108
Home | Trees | Indices | Help |
|
---|
Generated by Epydoc 3.0beta1 on Sat Jan 26 17:45:09 2008 | http://epydoc.sourceforge.net |