summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjortel <devnull@localhost>2010-03-30 23:10:53 +0000
committerjortel <devnull@localhost>2010-03-30 23:10:53 +0000
commit5da4157327c96e1c9edb7087e1002fb4d13e0f65 (patch)
tree4dd5c422539a691fe60436fcb216c0b3845d8719
parent4123470f3cfd1e6ff3e07214f08e9fdf7c0258c3 (diff)
downloadsuds-5da4157327c96e1c9edb7087e1002fb4d13e0f65.tar.gz
Provide for composite reply w/ repeating message parts.
-rw-r--r--suds/bindings/binding.py15
1 files changed, 10 insertions, 5 deletions
diff --git a/suds/bindings/binding.py b/suds/bindings/binding.py
index a6d421e..5f9b9e4 100644
--- a/suds/bindings/binding.py
+++ b/suds/bindings/binding.py
@@ -206,14 +206,19 @@ class Binding:
continue
resolved = rt.resolve(nobuiltin=True)
sobject = unmarshaller.process(node, resolved)
- if rt.unbounded():
- value = getattr(composite, tag, None)
- if value is None:
+ value = getattr(composite, tag, None)
+ if value is None:
+ if rt.unbounded():
value = []
setattr(composite, tag, value)
- value.append(sobject)
+ value.append(sobject)
+ else:
+ setattr(composite, tag, sobject)
else:
- setattr(composite, tag, sobject)
+ if not isinstance(value, list):
+ value = [value,]
+ setattr(composite, tag, value)
+ value.append(sobject)
return composite
def get_fault(self, reply):