Description of problem: Calling a non-existent method causes the program to go into infinite recursion and exit with the error: RuntimeError: maximum recursion depth exceeded while calling a Python object Another examples are: api.vms.foo() api.vms.get(NAME).snapshots.foo() api.clusters.bar() Version-Release number of selected component (if applicable): Tried out in version 1.3 (release 1.fc16) and on recent git commit f538a42c0 (release 1.6.3-1). How reproducible: always Steps to Reproduce: 1. call api.datacenters.foo() Actual results: RuntimeError: maximum recursion depth exceeded while calling a Python object Expected results: AttributeError Additional info: This is how the traceback looks like when calling api.datacenters.foo(): Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/nose/case.py", line 197, in runTest self.test(*self.arg) File "/home/mkollaro/Projects/test-ovirt-engine-sdk/tests/test_storage.py", line 37, in test_x api.datacenters.foo() File "/usr/lib/python2.7/site-packages/ovirtsdk/infrastructure/common.py", line 29, in __getattr__ ... ... return self.superclass.__getattribute__(item) File "/usr/lib/python2.7/site-packages/ovirtsdk/infrastructure/common.py", line 29, in __getattr__ return self.superclass.__getattribute__(item) File "/usr/lib/python2.7/site-packages/ovirtsdk/infrastructure/common.py", line 29, in __getattr__ return self.superclass.__getattribute__(item) RuntimeError: maximum recursion depth exceeded
fixed in 1.6.5-1
Patch correctly raises AttributeError for all examples given, didn't find a way to break it. Did not create any regressions in my tests.