summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Heimes <christian@cheimes.de>2013-02-15 11:16:17 +0100
committerChristian Heimes <christian@cheimes.de>2013-02-15 11:16:17 +0100
commitccd9fd997cc566b076f7baf6c507a906d3932e9e (patch)
tree6a128aca8819f3b79e544be2e3d2ba733f590c4a
parenta0be4dc3f7a3b836263f4d5b49c3f9add735afac (diff)
downloaddefusedxml-ccd9fd997cc566b076f7baf6c507a906d3932e9e.tar.gz
tests for iterparse
-rw-r--r--tests.py37
1 files changed, 26 insertions, 11 deletions
diff --git a/tests.py b/tests.py
index ae2ba6a..cba8b39 100644
--- a/tests.py
+++ b/tests.py
@@ -15,7 +15,7 @@ from defusedxml import (DefusedXmlException, DTDForbidden, EntitiesForbidden,
from defusedxml.common import PY3, PY26, PY31
if PY3:
- from xmlrpclib.client import ExpatParser as XmlRpcParser
+ from xmlrpc.client import ExpatParser as XmlRpcParser
else:
from xmlrpclib import ExpatParser as XmlRpcParser
@@ -116,7 +116,7 @@ class BaseTests(DefusedTestCase):
external_ref_exception = ExternalReferenceForbidden
cyclic_error = None
-
+ iterparse = None
def test_simple_parse(self):
self.parse(self.xml_simple)
@@ -142,6 +142,14 @@ class BaseTests(DefusedTestCase):
self.assertRaises(EntitiesForbidden, self.parseString,
self.get_content(self.xml_external))
+ if self.iterparse:
+ self.assertRaises(EntitiesForbidden, self.iterparse,
+ self.xml_bomb)
+ self.assertRaises(EntitiesForbidden, self.iterparse,
+ self.xml_quadratic)
+ self.assertRaises(EntitiesForbidden, self.iterparse,
+ self.xml_external)
+
def test_entity_cycle(self):
self.assertRaises(self.cyclic_error, self.parse, self.xml_cyclic,
forbid_entities=False)
@@ -169,6 +177,17 @@ class BaseTests(DefusedTestCase):
self.get_content(self.xml_dtd),
forbid_dtd=True)
+ if self.iterparse:
+ self.assertRaises(DTDForbidden, self.iterparse,
+ self.xml_bomb, forbid_dtd=True)
+ self.assertRaises(DTDForbidden, self.iterparse,
+ self.xml_quadratic, forbid_dtd=True)
+ self.assertRaises(DTDForbidden, self.iterparse,
+ self.xml_external, forbid_dtd=True)
+ self.assertRaises(DTDForbidden, self.iterparse,
+ self.xml_dtd, forbid_dtd=True)
+
+
def test_dtd_with_external_ref(self):
if self.dtd_external_ref:
self.assertRaises(self.external_ref_exception, self.parse,
@@ -213,8 +232,8 @@ class TestDefusedElementTree(BaseTests):
tree = self.module.fromstring(xmlstring, **kwargs)
return self.module.tostring(tree)
- def iterparse(self, source, events=None):
- return self.module.iterparse(source, events)
+ def iterparse(self, source, **kwargs):
+ return list(self.module.iterparse(source, **kwargs))
class TestDefusedcElementTree(TestDefusedElementTree):
@@ -244,7 +263,6 @@ class TestDefusedPulldom(BaseTests):
cyclic_error = SAXParseException
dtd_external_ref = True
- iterparse = None
def parse(self, xmlfile, **kwargs):
events = self.module.parse(xmlfile, **kwargs)
@@ -263,8 +281,6 @@ class TestDefusedSax(BaseTests):
content_binary = True
dtd_external_ref = True
- iterparse = None
-
def parse(self, xmlfile, **kwargs):
if PY3:
result = io.StringIO()
@@ -314,7 +330,6 @@ class TestDefusedLxml(BaseTests):
cyclic_error = XMLSyntaxError
content_binary = True
- iterparse = None
def parse(self, xmlfile, **kwargs):
tree = self.module.parse(xmlfile, **kwargs)
@@ -427,9 +442,9 @@ class TestXmlRpc(DefusedTestCase):
parser.close()
return target
- def test_xmlrpc(self):
- self.parse(self.xml_bomb)
- self.parse(self.xml_quadratic)
+ #def test_xmlrpc(self):
+ # self.parse(self.xml_bomb)
+ # self.parse(self.xml_quadratic)
def test_main():