Fixes serialization of array items in model_to_dict [python] (#9153)

* Adds tests of endpoint with inline and refed model

* Regen samples

* Samples regenerated
This commit is contained in:
Justin Black
2021-04-01 13:34:19 -07:00
committed by GitHub
parent 7bf792a348
commit fc58adee31
22 changed files with 1290 additions and 37 deletions

View File

@@ -1493,13 +1493,19 @@ def model_to_dict(model_instance, serialize=True):
# exist in attribute_map
attr = model_instance.attribute_map.get(attr, attr)
if isinstance(value, list):
if not value or isinstance(value[0], PRIMITIVE_TYPES):
# empty list or primitive types
result[attr] = value
elif isinstance(value[0], ModelSimple):
result[attr] = [x.value for x in value]
else:
result[attr] = [model_to_dict(x, serialize=serialize) for x in value]
if not value:
# empty list or None
result[attr] = value
else:
res = []
for v in value:
if isinstance(v, PRIMITIVE_TYPES) or v is None:
res.append(v)
elif isinstance(v, ModelSimple):
res.append(v.value)
else:
res.append(model_to_dict(v, serialize=serialize))
result[attr] = res
elif isinstance(value, dict):
result[attr] = dict(map(
lambda item: (item[0],