From 7ab99702a39fa630084c5100075c567ed9961da4 Mon Sep 17 00:00:00 2001 From: Paul Vinciguerra Date: Tue, 5 Mar 2019 04:30:04 -0800 Subject: Test: vpp_papi_provider. __getattr__ Replace custom __getattr__ with custom __getattribute__. Change-Id: Ib96176abc07eefedba305ed874621001a810eb0d Signed-off-by: Paul Vinciguerra --- test/vpp_papi_provider.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/test/vpp_papi_provider.py b/test/vpp_papi_provider.py index c21d8c2a8b0..2188ed3c041 100644 --- a/test/vpp_papi_provider.py +++ b/test/vpp_papi_provider.py @@ -174,11 +174,15 @@ class VppPapiProvider(object): return self.api(apifn, d) return f - def __getattr__(self, name): + def __getattribute__(self, name): try: - return getattr(self, name) - except: - return self.factory(name, getattr(self.papi, name)) + method = super(VppPapiProvider, self).__getattribute__(name) + except AttributeError: + method = self.factory(name, getattr(self.papi, name)) + # lazily load the method so we don't need to call factory + # again for this name. + setattr(self, name, method) + return method def connect(self): """Connect the API to VPP""" -- cgit 1.2.3-korg