|
1 | 1 | # regression test for SAX 2.0 |
2 | 2 |
|
3 | 3 | from xml.sax import make_parser, ContentHandler, \ |
4 | | - SAXException, SAXReaderNotAvailable, SAXParseException |
| 4 | + SAXException, SAXReaderNotAvailable, SAXParseException, handler |
5 | 5 | import unittest |
6 | 6 | from unittest import mock |
7 | 7 | try: |
@@ -1307,6 +1307,38 @@ def test_expat_locator_withinfo_nonascii(self): |
1307 | 1307 | self.assertEqual(parser.getSystemId(), fname) |
1308 | 1308 | self.assertEqual(parser.getPublicId(), None) |
1309 | 1309 |
|
| 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) |
| 1314 | + |
| 1315 | + class Handler(handler.ContentHandler): |
| 1316 | + def startElementNS(self, name, qname, attrs): |
| 1317 | + self.qname = qname |
| 1318 | + |
| 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) |
| 1329 | + |
| 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") |
| 1340 | + |
| 1341 | + |
1310 | 1342 |
|
1311 | 1343 | # =========================================================================== |
1312 | 1344 | # |
|
0 commit comments