]>
Commit | Line | Data |
---|---|---|
4710c53d | 1 | # xml.etree test for cElementTree\r |
2 | \r | |
3 | from test import test_support\r | |
4 | from test.test_support import precisionbigmemtest, _2G\r | |
5 | import unittest\r | |
6 | \r | |
7 | cET = test_support.import_module('xml.etree.cElementTree')\r | |
8 | \r | |
9 | \r | |
10 | # cElementTree specific tests\r | |
11 | \r | |
12 | def sanity():\r | |
13 | """\r | |
14 | Import sanity.\r | |
15 | \r | |
16 | >>> from xml.etree import cElementTree\r | |
17 | """\r | |
18 | \r | |
19 | \r | |
20 | class MiscTests(unittest.TestCase):\r | |
21 | # Issue #8651.\r | |
22 | @precisionbigmemtest(size=_2G + 100, memuse=1)\r | |
23 | def test_length_overflow(self, size):\r | |
24 | if size < _2G + 100:\r | |
25 | self.skipTest("not enough free memory, need at least 2 GB")\r | |
26 | data = b'x' * size\r | |
27 | parser = cET.XMLParser()\r | |
28 | try:\r | |
29 | self.assertRaises(OverflowError, parser.feed, data)\r | |
30 | finally:\r | |
31 | data = None\r | |
32 | \r | |
33 | \r | |
34 | def test_main():\r | |
35 | from test import test_xml_etree, test_xml_etree_c\r | |
36 | \r | |
37 | # Run the tests specific to the C implementation\r | |
38 | test_support.run_doctest(test_xml_etree_c, verbosity=True)\r | |
39 | \r | |
40 | # Assign the C implementation before running the doctests\r | |
41 | # Patch the __name__, to prevent confusion with the pure Python test\r | |
42 | pyET = test_xml_etree.ET\r | |
43 | py__name__ = test_xml_etree.__name__\r | |
44 | test_xml_etree.ET = cET\r | |
45 | if __name__ != '__main__':\r | |
46 | test_xml_etree.__name__ = __name__\r | |
47 | try:\r | |
48 | # Run the same test suite as xml.etree.ElementTree\r | |
49 | test_xml_etree.test_main(module_name='xml.etree.cElementTree')\r | |
50 | finally:\r | |
51 | test_xml_etree.ET = pyET\r | |
52 | test_xml_etree.__name__ = py__name__\r | |
53 | \r | |
54 | if __name__ == '__main__':\r | |
55 | test_main()\r |