|
1 | 1 | # regression test for SAX 2.0 |
2 | | - |
3 | 2 | from xml.sax import make_parser, ContentHandler, \ |
4 | 3 | SAXException, SAXReaderNotAvailable, SAXParseException, handler |
5 | 4 | import unittest |
@@ -1307,37 +1306,22 @@ def test_expat_locator_withinfo_nonascii(self): |
1307 | 1306 | self.assertEqual(parser.getSystemId(), fname) |
1308 | 1307 | self.assertEqual(parser.getPublicId(), None) |
1309 | 1308 |
|
1310 | | - def test_namespace_prefix(self): |
1311 | | - parser = create_parser() |
1312 | | - parser.setFeature(handler.feature_namespaces, 1) |
1313 | | - parser.setFeature(handler.feature_namespace_prefixes, 1) |
| 1309 | + def test_qualified_names(self): |
1314 | 1310 |
|
1315 | | - class Handler(handler.ContentHandler): |
| 1311 | + class Handler(ContentHandler): |
1316 | 1312 | def startElementNS(self, name, qname, attrs): |
1317 | 1313 | self.qname = qname |
1318 | 1314 |
|
1319 | | - h = Handler() |
1320 | | - |
1321 | | - parser.setContentHandler(h) |
1322 | | - parser.feed("<Q:E xmlns:Q='http://example.org/testuri'/>") |
1323 | | - parser.close() |
1324 | | - self.assertEqual(h.qname, "Q:E") |
1325 | | - |
1326 | | - def test_default_namespace(self): |
1327 | | - parser = create_parser() |
1328 | | - parser.setFeature(handler.feature_namespaces, 1) |
| 1315 | + for xml_s, expected_qname in zip(["<Q:E xmlns:Q='http://example.org/testuri'/>", "<E xmlns='http://example.org/testuri'/>", "<E />"], ["Q:E", "E", "E"]): |
| 1316 | + parser = create_parser() |
| 1317 | + parser.setFeature(handler.feature_namespaces, 1) |
| 1318 | + parser.setFeature(handler.feature_namespace_prefixes, 1) |
1329 | 1319 |
|
1330 | | - class Handler(handler.ContentHandler): |
1331 | | - def startElementNS(self, name, qname, attrs): |
1332 | | - self.qname = qname |
1333 | | - |
1334 | | - h = Handler() |
1335 | | - |
1336 | | - parser.setContentHandler(h) |
1337 | | - parser.feed("<E xmlns='http://example.org/testuri'/>") |
1338 | | - parser.close() |
1339 | | - self.assertEqual(h.qname, "E") |
| 1320 | + h = Handler() |
1340 | 1321 |
|
| 1322 | + parser.setContentHandler(h) |
| 1323 | + parser.parse(StringIO(xml_s)) |
| 1324 | + self.assertEqual(h.qname, expected_qname) |
1341 | 1325 |
|
1342 | 1326 |
|
1343 | 1327 | # =========================================================================== |
|
0 commit comments