From 6ea2a1196d1ab4a6156880ef06206fa1a1254c45 Mon Sep 17 00:00:00 2001 From: Roland Hedberg Date: Wed, 31 Mar 2010 11:17:20 +0200 Subject: [PATCH] Spelling error fixed and missing piece for added Extension elements added --- src/saml2/__init__.py | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/saml2/__init__.py b/src/saml2/__init__.py index 58da4fb..c59cf33 100644 --- a/src/saml2/__init__.py +++ b/src/saml2/__init__.py @@ -559,7 +559,22 @@ class SamlBase(ExtensionContainer): return self -def extension_element_to_element(extension_element, translation_function, + +def element_to_extension_element(element): + ee = ExtensionElement(element.c_tag, element.c_namespace, + text=element.text) + + for xml_attribute, member_name in element.c_attributes.iteritems(): + member_value = getattr(element, member_name) + if member_value is not None: + ee.attributes[xml_attribute] = member_value + + ee.children = [element_to_extension_element(c) \ + for c in element.children_with_values()] + + return ee + +def extension_element_to_element(extension_element, translation_functions, namespace=None): """ """ try: @@ -569,9 +584,9 @@ def extension_element_to_element(extension_element, translation_function, if element_namespace == namespace: try: try: - ets = translation_function[extension_element.tag] + ets = translation_functions[extension_element.tag] except AttributeError: - ets = translation_function[extension_element.c_tag] + ets = translation_functions[extension_element.c_tag] return ets(extension_element.to_string()) except KeyError: pass