Skip to content

Commit 5343547

Browse files
author
Rakshith Bhyravabhotla
authored
Fix model serialization (#220)
* Fix model serialization * add test
1 parent 76a4149 commit 5343547

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

msrest/serialization.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -953,7 +953,7 @@ def serialize_object(self, attr, **kwargs):
953953
return self.serialize_long(attr)
954954

955955
# If it's a model or I know this dependency, serialize as a Model
956-
elif obj_type in self.dependencies.values() or isinstance(obj_type, Model):
956+
elif obj_type in self.dependencies.values() or isinstance(attr, Model):
957957
return self._serialize(attr)
958958

959959
if obj_type == dict:

tests/test_serialization.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -312,6 +312,28 @@ def test_serialize_query(self):
312312
assert s.query("filter", [',', ',', ','], "[str]", div=",") == "%2C,%2C,%2C"
313313
assert s.query("filter", [',', ',', ','], "[str]", div="|", skip_quote=True) == ",|,|,"
314314

315+
def test_serialize_custom_model(self):
316+
317+
class CustomSample(Model):
318+
_validation = {
319+
'a': {'required': True},
320+
}
321+
322+
_attribute_map = {
323+
'a': {'key': 'a', 'type': 'str'},
324+
}
325+
326+
def __init__(self, a):
327+
self.a = a
328+
329+
s = Serializer()
330+
model = CustomSample("helloworld")
331+
serialized = s._serialize(model)
332+
333+
assert serialized is not None
334+
assert isinstance(serialized, dict)
335+
assert serialized['a'] == "helloworld"
336+
315337
def test_serialize_direct_model(self):
316338
testobj = self.TestObj()
317339
testobj.attr_a = "myid"

0 commit comments

Comments
 (0)