def test_simple(self): from lxml.etree import tostring from spyne.util.etreeconv import root_dict_to_etree assert tostring(root_dict_to_etree({'a': { 'b': 'c' }})) == '<a><b>c</b></a>'
def _fault_to_parent_impl(self, ctx, cls, inst, parent, ns, subelts, **_): tag_name = "{%s}Fault" % self.ns_soap_env # Accepting raw lxml objects as detail is DEPRECATED. It's also not # documented. It's kept for backwards-compatibility purposes. if isinstance(inst.detail, string_types + (etree._Element, )): _append(subelts, E('detail', inst.detail)) elif isinstance(inst.detail, dict): if len(inst.detail) > 0: _append(subelts, root_dict_to_etree({'detail': inst.detail})) elif inst.detail is None: pass else: raise TypeError('Fault detail Must be dict, got', type(inst.detail)) # add other nonstandard fault subelements with get_members_etree return self.gen_members_parent(ctx, cls, inst, parent, tag_name, subelts, add_type=False)
def _fault_to_parent_impl(self, ctx, cls, inst, parent, ns, subelts, **_): tag_name = "{%s}Fault" % self.ns_soap_env if isinstance(inst.faultcode, string_types): value, faultcodes = self.gen_fault_codes(inst.faultcode) code = E("{%s}Code" % self.ns_soap_env) code.append(E("{%s}Value" % self.ns_soap_env, value)) child_subcode = 0 for value in faultcodes: if child_subcode: child_subcode = self.generate_subcode(value, child_subcode) else: child_subcode = self.generate_subcode(value) if child_subcode == 0: child_subcode = self.generate_subcode(value) code.append(child_subcode) _append(subelts, code) if isinstance(inst.detail, dict): _append(subelts, E('{%s}Detail' % self.ns_soap_env, root_dict_to_etree(inst.detail))) elif inst.detail is None: pass else: raise TypeError('Fault detail Must be dict, got', type(inst.detail)) return self.gen_members_parent(ctx, cls, inst, parent, tag_name, subelts, add_type=False)
def _fault_to_parent_impl(self, ctx, cls, inst, parent, ns, subelts, **_): tag_name = "{%s}Fault" % self.ns_soap_env if isinstance(inst.faultcode, string_types): value, faultcodes = self.gen_fault_codes(inst.faultcode) code = E("{%s}Code" % self.ns_soap_env) code.append(E("{%s}Value" % self.ns_soap_env, value)) child_subcode = False for value in faultcodes[::-1]: if child_subcode: child_subcode = self.generate_subcode(value, child_subcode) else: child_subcode = self.generate_subcode(value) if child_subcode != 0: code.append(child_subcode) _append(subelts, code) if isinstance(inst.detail, dict): _append(subelts, E('{%s}Detail' % self.ns_soap_env, root_dict_to_etree(inst.detail))) elif inst.detail is None: pass else: raise TypeError('Fault detail Must be dict, got', type(inst.detail)) return self.gen_members_parent(ctx, cls, inst, parent, tag_name, subelts, add_type=False)
def fault_to_parent(self, ctx, cls, inst, parent, ns, *args, **kwargs): tag_name = "{%s}Fault" % self.ns_soap_env subelts = [ E("{%s}Reason" % self.soap_env, inst.faultstring), E("{%s}Role" % self.soap_env, inst.faultactor), ] if isinstance(inst.faultcode, string_types): value, faultcodes = self.gen_fault_codes(inst.faultcode) code = E("{%s}Code" % self.soap_env) code.append(E("{%s}Value" % self.soap_env, value)) child_subcode = 0 for value in faultcodes: if child_subcode: child_subcode = self.generate_subcode(value, child_subcode) else: child_subcode = self.generate_subcode(value) code.append(child_subcode) _append(subelts, code) if isinstance(inst.detail, dict): _append(subelts, E('{%s}Detail' % self.soap_env, root_dict_to_etree(inst.detail))) elif inst.detail is None: raise TypeError('Fault detail Must be dict, got', type(inst.detail)) else: raise TypeError('Fault detail Must be dict, got', type(inst.detail)) return self.gen_members_parent(ctx, cls, inst, parent, tag_name, subelts)
def test_not_sized(self): from lxml.etree import tostring from spyne.util.etreeconv import root_dict_to_etree complex_value = root_dict_to_etree({'a':{'b':1}}) self.assertEqual(tostring(complex_value), '<a><b>1</b></a>', "The integer should be properly rendered in the etree") complex_none = root_dict_to_etree({'a':{'b':None}}) self.assertEqual(tostring(complex_none), '<a><b/></a>', "None should not be rendered in the etree") simple_value = root_dict_to_etree({'a': 1}) self.assertEqual(tostring(simple_value), '<a>1</a>', "The integer should be properly rendered in the etree") none_value = root_dict_to_etree({'a': None}) self.assertEqual(tostring(none_value), '<a/>', "None should not be rendered in the etree") string_value = root_dict_to_etree({'a': 'lol'}) self.assertEqual(tostring(string_value), '<a>lol</a>', "A string should be rendered as a string") complex_string_value = root_dict_to_etree({'a': {'b': 'lol'}}) self.assertEqual(tostring(complex_string_value), '<a><b>lol</b></a>', "A string should be rendered as a string")
def _fault_to_parent_impl(self, ctx, cls, inst, parent, ns, subelts, **_): tag_name = "{%s}Fault" % self.ns_soap_env # Accepting raw lxml objects as detail is deprecated. It's also not # documented. It's kept for backwards-compatibility purposes. if isinstance(inst.detail, string_types + (etree._Element,)): _append(subelts, E('detail', inst.detail)) elif isinstance(inst.detail, dict): if len(inst.detail) > 0: _append(subelts, root_dict_to_etree({'detail':inst.detail})) elif inst.detail is None: pass else: raise TypeError('Fault detail Must be dict, got', type(inst.detail)) # add other nonstandard fault subelements with get_members_etree return self.gen_members_parent(ctx, cls, inst, parent, tag_name, subelts, add_type=False)
def fault_to_parent(self, ctx, cls, inst, parent, ns, *args, **kwargs): tag_name = "{%s}Fault" % self.ns_soap_env subelts = [ E("faultcode", '%s:%s' % (self.soap_env, inst.faultcode)), E("faultstring", inst.faultstring), E("faultactor", inst.faultactor), ] # Accepting raw lxml objects as detail is deprecated. It's also not # documented. It's kept for backwards-compatibility purposes. if isinstance(inst.detail, string_types + (etree._Element,)): _append(subelts, E('detail', inst.detail)) elif isinstance(inst.detail, dict): _append(subelts, E('detail', root_dict_to_etree(inst.detail))) elif inst.detail is None: pass else: raise TypeError('Fault detail Must be dict, got', type(inst.detail)) # add other nonstandard fault subelements with get_members_etree return self.gen_members_parent(ctx, cls, inst, parent, tag_name, subelts)
def fault_to_parent(self, ctx, cls, inst, parent, ns, *args, **kwargs): tag_name = "{%s}Fault" % self.ns_soap_env reason = E("{%s}Reason" % self.ns_soap_env) reason.append(E("{%s}Text" % self.ns_soap_env, inst.faultstring, **{'{%s}lang' % NS_XML: inst.lang})) subelts = [ reason, E("{%s}Role" % self.ns_soap_env, inst.faultactor), ] if isinstance(inst.faultcode, string_types): value, faultcodes = self.gen_fault_codes(inst.faultcode) code = E("{%s}Code" % self.ns_soap_env) code.append(E("{%s}Value" % self.ns_soap_env, value)) child_subcode = 0 for value in faultcodes: if child_subcode: child_subcode = self.generate_subcode(value, child_subcode) else: child_subcode = self.generate_subcode(value) code.append(child_subcode) _append(subelts, code) if isinstance(inst.detail, dict): _append(subelts, E('{%s}Detail' % self.ns_soap_env, root_dict_to_etree(inst.detail))) elif inst.detail is None: pass else: raise TypeError('Fault detail Must be dict, got', type(inst.detail)) return self.gen_members_parent(ctx, cls, inst, parent, tag_name, subelts, add_type=False)
def test_simple(self): from lxml.etree import tostring from spyne.util.etreeconv import root_dict_to_etree assert tostring(root_dict_to_etree({'a':{'b':'c'}})) == '<a><b>c</b></a>'
def test_any(self): val = root_dict_to_etree(self._get_xml_test_val()) ret = self.client.service.echo_any(val) self.assertEquals(ret, val)
def test_simple(self): from lxml.etree import tostring from spyne.util.etreeconv import root_dict_to_etree assert tostring(root_dict_to_etree({"a": {"b": "c"}})) == "<a><b>c</b></a>"