(self)
| 2034 | |
| 2035 | @unittest.expectedFailure # TODO: RUSTPYTHON |
| 2036 | def test_xinclude(self): |
| 2037 | from xml.etree import ElementInclude |
| 2038 | |
| 2039 | # Basic inclusion example (XInclude C.1) |
| 2040 | document = self.xinclude_loader("C1.xml") |
| 2041 | ElementInclude.include(document, self.xinclude_loader) |
| 2042 | self.assertEqual(serialize(document), |
| 2043 | '<document>\n' |
| 2044 | ' <p>120 Mz is adequate for an average home user.</p>\n' |
| 2045 | ' <disclaimer>\n' |
| 2046 | ' <p>The opinions represented herein represent those of the individual\n' |
| 2047 | ' and should not be interpreted as official policy endorsed by this\n' |
| 2048 | ' organization.</p>\n' |
| 2049 | '</disclaimer>\n' |
| 2050 | '</document>') # C1 |
| 2051 | |
| 2052 | # Textual inclusion example (XInclude C.2) |
| 2053 | document = self.xinclude_loader("C2.xml") |
| 2054 | ElementInclude.include(document, self.xinclude_loader) |
| 2055 | self.assertEqual(serialize(document), |
| 2056 | '<document>\n' |
| 2057 | ' <p>This document has been accessed\n' |
| 2058 | ' 324387 times.</p>\n' |
| 2059 | '</document>') # C2 |
| 2060 | |
| 2061 | # Textual inclusion after sibling element (based on modified XInclude C.2) |
| 2062 | document = self.xinclude_loader("C2b.xml") |
| 2063 | ElementInclude.include(document, self.xinclude_loader) |
| 2064 | self.assertEqual(serialize(document), |
| 2065 | '<document>\n' |
| 2066 | ' <p>This document has been <em>accessed</em>\n' |
| 2067 | ' 324387 times.</p>\n' |
| 2068 | '</document>') # C2b |
| 2069 | |
| 2070 | # Textual inclusion of XML example (XInclude C.3) |
| 2071 | document = self.xinclude_loader("C3.xml") |
| 2072 | ElementInclude.include(document, self.xinclude_loader) |
| 2073 | self.assertEqual(serialize(document), |
| 2074 | '<document>\n' |
| 2075 | ' <p>The following is the source of the "data.xml" resource:</p>\n' |
| 2076 | " <example><?xml version='1.0'?>\n" |
| 2077 | '<data>\n' |
| 2078 | ' <item><![CDATA[Brooks & Shields]]></item>\n' |
| 2079 | '</data>\n' |
| 2080 | '</example>\n' |
| 2081 | '</document>') # C3 |
| 2082 | |
| 2083 | # Fallback example (XInclude C.5) |
| 2084 | # Note! Fallback support is not yet implemented |
| 2085 | document = self.xinclude_loader("C5.xml") |
| 2086 | with self.assertRaises(OSError) as cm: |
| 2087 | ElementInclude.include(document, self.xinclude_loader) |
| 2088 | self.assertEqual(str(cm.exception), 'resource not found') |
| 2089 | self.assertEqual(serialize(document), |
| 2090 | '<div xmlns:ns0="http://www.w3.org/2001/XInclude">\n' |
| 2091 | ' <ns0:include href="example.txt" parse="text">\n' |
| 2092 | ' <ns0:fallback>\n' |
| 2093 | ' <ns0:include href="fallback-example.txt" parse="text">\n' |
nothing calls this directly
no test coverage detected