(self)
| 2080 | '</document>') |
| 2081 | |
| 2082 | def test_xinclude(self): |
| 2083 | from xml.etree import ElementInclude |
| 2084 | |
| 2085 | # Basic inclusion example (XInclude C.1) |
| 2086 | document = self.xinclude_loader("C1.xml") |
| 2087 | ElementInclude.include(document, self.xinclude_loader) |
| 2088 | self.assertEqual(serialize(document), |
| 2089 | '<document>\n' |
| 2090 | ' <p>120 Mz is adequate for an average home user.</p>\n' |
| 2091 | ' <disclaimer>\n' |
| 2092 | ' <p>The opinions represented herein represent those of the individual\n' |
| 2093 | ' and should not be interpreted as official policy endorsed by this\n' |
| 2094 | ' organization.</p>\n' |
| 2095 | '</disclaimer>\n' |
| 2096 | '</document>') # C1 |
| 2097 | |
| 2098 | # Textual inclusion example (XInclude C.2) |
| 2099 | document = self.xinclude_loader("C2.xml") |
| 2100 | ElementInclude.include(document, self.xinclude_loader) |
| 2101 | self.assertEqual(serialize(document), |
| 2102 | '<document>\n' |
| 2103 | ' <p>This document has been accessed\n' |
| 2104 | ' 324387 times.</p>\n' |
| 2105 | '</document>') # C2 |
| 2106 | |
| 2107 | # Textual inclusion after sibling element (based on modified XInclude C.2) |
| 2108 | document = self.xinclude_loader("C2b.xml") |
| 2109 | ElementInclude.include(document, self.xinclude_loader) |
| 2110 | self.assertEqual(serialize(document), |
| 2111 | '<document>\n' |
| 2112 | ' <p>This document has been <em>accessed</em>\n' |
| 2113 | ' 324387 times.</p>\n' |
| 2114 | '</document>') # C2b |
| 2115 | |
| 2116 | # Textual inclusion of XML example (XInclude C.3) |
| 2117 | document = self.xinclude_loader("C3.xml") |
| 2118 | ElementInclude.include(document, self.xinclude_loader) |
| 2119 | self.assertEqual(serialize(document), |
| 2120 | '<document>\n' |
| 2121 | ' <p>The following is the source of the "data.xml" resource:</p>\n' |
| 2122 | " <example><?xml version='1.0'?>\n" |
| 2123 | '<data>\n' |
| 2124 | ' <item><![CDATA[Brooks & Shields]]></item>\n' |
| 2125 | '</data>\n' |
| 2126 | '</example>\n' |
| 2127 | '</document>') # C3 |
| 2128 | |
| 2129 | # Fallback example (XInclude C.5) |
| 2130 | # Note! Fallback support is not yet implemented |
| 2131 | document = self.xinclude_loader("C5.xml") |
| 2132 | with self.assertRaises(OSError) as cm: |
| 2133 | ElementInclude.include(document, self.xinclude_loader) |
| 2134 | self.assertEqual(str(cm.exception), 'resource not found') |
| 2135 | self.assertEqual(serialize(document), |
| 2136 | '<div xmlns:ns0="http://www.w3.org/2001/XInclude">\n' |
| 2137 | ' <ns0:include href="example.txt" parse="text">\n' |
| 2138 | ' <ns0:fallback>\n' |
| 2139 | ' <ns0:include href="fallback-example.txt" parse="text">\n' |
nothing calls this directly
no test coverage detected