Browse Source

Limit AuthServiceProxyWrapper.__getattr__ wrapping

Change AuthServiceProxyWrapper.__getattr__ to only wrap proxied attributes, not
real attributes. This way AuthServiceProxyWrapper can continue logging RPC
calls without complicating other object usages, and special case handling for
the .url property can be dropped.
0.16
Russell Yanofsky 7 years ago
parent
commit
e02007aade
  1. 13
      test/functional/test_framework/coverage.py

13
test/functional/test_framework/coverage.py

@ -31,10 +31,11 @@ class AuthServiceProxyWrapper(object):
self.auth_service_proxy_instance = auth_service_proxy_instance self.auth_service_proxy_instance = auth_service_proxy_instance
self.coverage_logfile = coverage_logfile self.coverage_logfile = coverage_logfile
def __getattr__(self, *args, **kwargs): def __getattr__(self, name):
return_val = self.auth_service_proxy_instance.__getattr__( return_val = getattr(self.auth_service_proxy_instance, name)
*args, **kwargs) if not isinstance(return_val, type(self.auth_service_proxy_instance)):
# If proxy getattr returned an unwrapped value, do the same here.
return return_val
return AuthServiceProxyWrapper(return_val, self.coverage_logfile) return AuthServiceProxyWrapper(return_val, self.coverage_logfile)
def __call__(self, *args, **kwargs): def __call__(self, *args, **kwargs):
@ -52,10 +53,6 @@ class AuthServiceProxyWrapper(object):
return return_val return return_val
@property
def url(self):
return self.auth_service_proxy_instance.url
def __truediv__(self, relative_uri): def __truediv__(self, relative_uri):
return AuthServiceProxyWrapper(self.auth_service_proxy_instance / relative_uri) return AuthServiceProxyWrapper(self.auth_service_proxy_instance / relative_uri)

Loading…
Cancel
Save