def recursively_call_properties(self, zenpy_object):
for attr_name in dir(zenpy_object):<EOL><INDENT>if isinstance(getattr(type(zenpy_object), attr_name, None), property):<EOL><INDENT>prop_val = getattr(zenpy_object, attr_name)<EOL>if prop_val and issubclass(prop_val.__class__, BaseObject):<EOL><INDENT>self.recursively_call_properties(prop_val)<EOL><DEDENT>elif issubclass(prop_val.__class__, BaseResultGenerator):<EOL><INDENT>for obj in prop_val:<EOL><INDENT>self.recursively_call_properties(obj)<EOL><DEDENT><DEDENT><DEDENT><DEDENT>
Recursively test that a Zenpy object's properties, and each linked property can be called without error.