fix iter_caps() to not return only immediate base cap classes
This commit is contained in:
parent
642f2b7328
commit
f603c44d6c
2 changed files with 10 additions and 7 deletions
|
|
@ -82,9 +82,7 @@ class Module(object):
|
|||
return self.klass.ICON
|
||||
|
||||
def iter_caps(self):
|
||||
for cap in self.klass.__bases__:
|
||||
if issubclass(cap, IBaseCap) and cap != IBaseCap:
|
||||
yield cap
|
||||
return self.klass.iter_caps()
|
||||
|
||||
def has_caps(self, *caps):
|
||||
for c in caps:
|
||||
|
|
|
|||
|
|
@ -193,10 +193,15 @@ class BaseBackend(object):
|
|||
|
||||
return self.BROWSER(*args, **kwargs)
|
||||
|
||||
def iter_caps(self):
|
||||
for cap in self.__class__.__bases__:
|
||||
if issubclass(cap, IBaseCap) and cap != IBaseCap:
|
||||
yield cap
|
||||
@classmethod
|
||||
def iter_caps(klass):
|
||||
def iter_caps(cls):
|
||||
for base in cls.__bases__:
|
||||
if issubclass(base, IBaseCap) and base != IBaseCap:
|
||||
yield base
|
||||
for cap in iter_caps(base):
|
||||
yield cap
|
||||
return iter_caps(klass)
|
||||
|
||||
def has_caps(self, *caps):
|
||||
for c in caps:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue