summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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):