def test_assertXmlValidRelaxNG(self): """Asserts assertXmlValidRelaxNG raises when schema does not valid XML. """ test_case = XmlTestCase(methodName='assertXmlValidRelaxNG') relaxng = b"""<?xml version="1.0" encoding="utf-8"?> <rng:element name="root" xmlns:rng="http://relaxng.org/ns/structure/1.0"> <rng:element name="child"> <rng:attribute name="id"> <rng:text /> </rng:attribute> </rng:element> </rng:element> """ data = b"""<?xml version="1.0" encoding="utf-8"?> <root> <child id="valid"/> </root> """ root = test_case.assertXmlDocument(data) test_case.assertXmlValidRelaxNG(root, relaxng) data_invalid = b"""<?xml version="1.0" encoding="utf-8"?> <root> <child id="valid"/> <child id="tooManyChild"/> </root> """ root = test_case.assertXmlDocument(data_invalid) with self.assertRaises(test_case.failureException): test_case.assertXmlValidRelaxNG(root, relaxng)
def test_assertXmlValidRelaxNG(self): """Asserts assertXmlValidRelaxNG raises when schema does not valid XML. """ test_case = XmlTestCase(methodName='assertXmlValidRelaxNG') relaxng = b"""<?xml version="1.0" encoding="utf-8"?> <rng:element name="root" xmlns:rng="http://relaxng.org/ns/structure/1.0"> <rng:element name="child"> <rng:attribute name="id"> <rng:text /> </rng:attribute> </rng:element> </rng:element> """ data = b"""<?xml version="1.0" encoding="utf-8"?> <root> <child id="valid"/> </root> """ root = test_case.assertXmlDocument(data) test_case.assertXmlValidRelaxNG(root, relaxng) data_invalid = b"""<?xml version="1.0" encoding="utf-8"?> <root> <child id="valid"/> <child id="tooManyChild"/> </root> """ root = test_case.assertXmlDocument(data_invalid) with self.assertRaises(test_case.failureException): test_case.assertXmlValidRelaxNG(root, relaxng)
def test_assertXmlValidRelaxNG_no_relaxng(self): """Asserts assertXmlValidRelaxNG raises ValueError without any RelaxNG. """ test_case = XmlTestCase(methodName='assertXmlValidRelaxNG') data = b"""<?xml version="1.0" encoding="utf-8"?> <root> <child id="child1"/> </root> """ root = test_case.assertXmlDocument(data) # No DTD: ValueError with self.assertRaises(ValueError): test_case.assertXmlValidRelaxNG(root)
def test_assertXmlValidRelaxNG_no_relaxng(self): """Asserts assertXmlValidRelaxNG raises ValueError without any RelaxNG. """ test_case = XmlTestCase(methodName='assertXmlValidRelaxNG') data = b"""<?xml version="1.0" encoding="utf-8"?> <root> <child id="child1"/> </root> """ root = test_case.assertXmlDocument(data) # No DTD: ValueError with self.assertRaises(ValueError): test_case.assertXmlValidRelaxNG(root)
def test_assertXmlValidRelaxNG_filename(self): """Asserts assertXmlValidRelaxNG raises when schema does not valid XML. """ test_case = XmlTestCase(methodName='assertXmlValidRelaxNG') relaxng = """<?xml version="1.0" encoding="utf-8"?> <rng:element name="root" xmlns:rng="http://relaxng.org/ns/structure/1.0"> <rng:element name="child"> <rng:attribute name="id"> <rng:text /> </rng:attribute> </rng:element> </rng:element> """ filename = 'test_assertXmlValidRelaxNG_filename.xml' with open(filename, 'w') as relaxng_file: relaxng_file.write(relaxng.encode('utf8')) data = b"""<?xml version="1.0" encoding="utf-8"?> <root> <child id="valid"/> </root> """ root = test_case.assertXmlDocument(data) try: test_case.assertXmlValidRelaxNG(root, filename=filename) except: os.unlink(filename) raise data_invalid = b"""<?xml version="1.0" encoding="utf-8"?> <root> <child id="valid"/> <child id="tooManyChild"/> </root> """ root = test_case.assertXmlDocument(data_invalid) try: with self.assertRaises(test_case.failureException): test_case.assertXmlValidRelaxNG(root, filename=filename) finally: os.unlink(filename)
def test_assertXmlValidRelaxNG_filename(self): """Asserts assertXmlValidRelaxNG raises when schema does not valid XML. """ test_case = XmlTestCase(methodName='assertXmlValidRelaxNG') relaxng = """<?xml version="1.0" encoding="utf-8"?> <rng:element name="root" xmlns:rng="http://relaxng.org/ns/structure/1.0"> <rng:element name="child"> <rng:attribute name="id"> <rng:text /> </rng:attribute> </rng:element> </rng:element> """ filename = 'test_assertXmlValidRelaxNG_filename.xml' with open(filename, 'w') as relaxng_file: relaxng_file.write(relaxng) data = b"""<?xml version="1.0" encoding="utf-8"?> <root> <child id="valid"/> </root> """ root = test_case.assertXmlDocument(data) try: test_case.assertXmlValidRelaxNG(root, filename=filename) except: os.unlink(filename) raise data_invalid = b"""<?xml version="1.0" encoding="utf-8"?> <root> <child id="valid"/> <child id="tooManyChild"/> </root> """ root = test_case.assertXmlDocument(data_invalid) try: with self.assertRaises(test_case.failureException): test_case.assertXmlValidRelaxNG(root, filename=filename) finally: os.unlink(filename)