fix do() when the 'backends' attribute is an empty string or an unknown type

This commit is contained in:
Romain Bignon 2010-07-27 10:55:49 +02:00
commit 45ac367554

View file

@ -113,14 +113,15 @@ class Weboob(object):
@return an iterator of results @return an iterator of results
""" """
backends = self.backend_instances.values() backends = self.backend_instances.values()
if 'backends' in kwargs and kwargs['backends']: if 'backends' in kwargs:
if isinstance(kwargs['backends'], BaseBackend): _backends = kwargs.pop('backends')
backends = [kwargs.pop('backends')] if isinstance(_backends, BaseBackend):
elif isinstance(kwargs['backends'], (str,unicode)) and kwargs['backends']: backends = [_backends]
backends = [self.backend_instances[kwargs.pop('backends')]] elif isinstance(_backends, (str,unicode)) and _backends:
elif isinstance(kwargs['backends'], (list,tuple)): backends = [self.backend_instances[_backends]]
elif isinstance(_backends, (list,tuple)):
backends = [] backends = []
for backend in kwargs.pop('backends'): for backend in _backends:
if isinstance(backend, (str,unicode)): if isinstance(backend, (str,unicode)):
try: try:
backends.append(self.backend_instances[backend]) backends.append(self.backend_instances[backend])
@ -128,6 +129,8 @@ class Weboob(object):
pass pass
else: else:
backends.append(backend) backends.append(backend)
else:
warning('The "backends" value isn\'t supported: %r' % _backends)
if 'caps' in kwargs: if 'caps' in kwargs:
caps = kwargs.pop('caps') caps = kwargs.pop('caps')