Skip to content

Commit 189632c

Browse files
author
Carlton Duffett
committed
On second thought, let's put this near the bottom of the file...
1 parent 0e7b731 commit 189632c

1 file changed

Lines changed: 22 additions & 21 deletions

File tree

src/onelogin/saml2/xml_utils.py

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -31,27 +31,6 @@ class OneLogin_Saml2_XML(object):
3131
make_root = staticmethod(etree.Element)
3232
make_child = staticmethod(etree.SubElement)
3333

34-
@staticmethod
35-
def cleanup_namespaces(tree_or_element, top_nsmap=None, keep_ns_prefixes=None):
36-
"""
37-
Keeps the xmlns:xs namespace intact when etree.cleanup_namespaces is invoked.
38-
:param tree_or_element: An XML tree or element
39-
:type tree_or_element: etree.Element
40-
:param top_nsmap: A mapping from namespace prefixes to namespace URIs
41-
:type top_nsmap: dict
42-
:param keep_ns_prefixes: List of prefixes that should not be removed as part of the cleanup
43-
:type keep_ns_prefixes: list
44-
:returns: An XML tree or element
45-
:rtype: etree.Element
46-
"""
47-
all_prefixes_to_keep = [
48-
OneLogin_Saml2_Constants.NS_PREFIX_XS
49-
]
50-
51-
if keep_ns_prefixes:
52-
all_prefixes_to_keep = list(set(all_prefixes_to_keep.extend(keep_ns_prefixes)))
53-
54-
return etree.cleanup_namespaces(tree_or_element, keep_ns_prefixes=all_prefixes_to_keep)
5534

5635
@staticmethod
5736
def to_string(xml, **kwargs):
@@ -144,6 +123,28 @@ def query(dom, query, context=None):
144123
else:
145124
return context.xpath(query, namespaces=OneLogin_Saml2_Constants.NSMAP)
146125

126+
@staticmethod
127+
def cleanup_namespaces(tree_or_element, top_nsmap=None, keep_ns_prefixes=None):
128+
"""
129+
Keeps the xmlns:xs namespace intact when etree.cleanup_namespaces is invoked.
130+
:param tree_or_element: An XML tree or element
131+
:type tree_or_element: etree.Element
132+
:param top_nsmap: A mapping from namespace prefixes to namespace URIs
133+
:type top_nsmap: dict
134+
:param keep_ns_prefixes: List of prefixes that should not be removed as part of the cleanup
135+
:type keep_ns_prefixes: list
136+
:returns: An XML tree or element
137+
:rtype: etree.Element
138+
"""
139+
all_prefixes_to_keep = [
140+
OneLogin_Saml2_Constants.NS_PREFIX_XS
141+
]
142+
143+
if keep_ns_prefixes:
144+
all_prefixes_to_keep = list(set(all_prefixes_to_keep.extend(keep_ns_prefixes)))
145+
146+
return etree.cleanup_namespaces(tree_or_element, keep_ns_prefixes=all_prefixes_to_keep)
147+
147148
@staticmethod
148149
def extract_tag_text(xml, tagname):
149150
open_tag = compat.to_bytes("<%s" % tagname)

0 commit comments

Comments
 (0)