Skip to content

Commit be878cb

Browse files
committed
Moved test_namespace_prefix to test_sax.py
1 parent fe9d82f commit be878cb

File tree

4 files changed

+36
-27
lines changed

4 files changed

+36
-27
lines changed

Doc/whatsnew/3.15.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -660,6 +660,9 @@ xml.parsers.expat
660660

661661
.. _billion laughs: https://en.wikipedia.org/wiki/Billion_laughs_attack
662662

663+
* Add support for namespace prefixes.
664+
(Contributed by Yassir Karroum in :gh:`118317`.)
665+
663666

664667
zlib
665668
----

Lib/test/test_sax.py

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# regression test for SAX 2.0
22

33
from xml.sax import make_parser, ContentHandler, \
4-
SAXException, SAXReaderNotAvailable, SAXParseException
4+
SAXException, SAXReaderNotAvailable, SAXParseException, handler
55
import unittest
66
from unittest import mock
77
try:
@@ -1307,6 +1307,38 @@ def test_expat_locator_withinfo_nonascii(self):
13071307
self.assertEqual(parser.getSystemId(), fname)
13081308
self.assertEqual(parser.getPublicId(), None)
13091309

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+
13101342

13111343
# ===========================================================================
13121344
#

Lib/test/test_xml_expatreader.py

Lines changed: 0 additions & 24 deletions
This file was deleted.

Misc/NEWS.d/next/Library/2024-04-26-14-21-04.gh-issue-54873.vf2bfp.rst

Lines changed: 0 additions & 2 deletions
This file was deleted.

0 commit comments

Comments
 (0)