aboutsummaryrefslogtreecommitdiff
path: root/test/functional/test_framework/coverage.py
diff options
context:
space:
mode:
authorRussell Yanofsky <russ@yanofsky.org>2017-09-07 17:29:26 -0400
committerRussell Yanofsky <russ@yanofsky.org>2017-10-03 15:25:00 -0400
commite02007aade3d449f030fe5c8b12beddd7df1b232 (patch)
tree5519647b70dcaa5a99f7a00b89e0987f645000dc /test/functional/test_framework/coverage.py
parentedafc718ad071993d10b3b9a1e1828bbd1f8ce54 (diff)
downloadbitcoin-e02007aade3d449f030fe5c8b12beddd7df1b232.tar.xz
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.
Diffstat (limited to 'test/functional/test_framework/coverage.py')
-rw-r--r--test/functional/test_framework/coverage.py13
1 files changed, 5 insertions, 8 deletions
diff --git a/test/functional/test_framework/coverage.py b/test/functional/test_framework/coverage.py
index 227b1a17af..c0202e5609 100644
--- a/test/functional/test_framework/coverage.py
+++ b/test/functional/test_framework/coverage.py
@@ -31,10 +31,11 @@ class AuthServiceProxyWrapper(object):
self.auth_service_proxy_instance = auth_service_proxy_instance
self.coverage_logfile = coverage_logfile
- def __getattr__(self, *args, **kwargs):
- return_val = self.auth_service_proxy_instance.__getattr__(
- *args, **kwargs)
-
+ def __getattr__(self, name):
+ return_val = getattr(self.auth_service_proxy_instance, name)
+ 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)
def __call__(self, *args, **kwargs):
@@ -52,10 +53,6 @@ class AuthServiceProxyWrapper(object):
return return_val
- @property
- def url(self):
- return self.auth_service_proxy_instance.url
-
def __truediv__(self, relative_uri):
return AuthServiceProxyWrapper(self.auth_service_proxy_instance / relative_uri)