correctly handle BrowserUnavailable and BrowserIncorrectPassword exceptions in repl applications (closes #302)

It asks user to reconfigure backend when BrowserIncorrectPassword is
raised.
This commit is contained in:
Romain Bignon 2010-09-30 11:59:12 +02:00
commit 6dfbda042c
4 changed files with 67 additions and 31 deletions

View file

@ -34,7 +34,7 @@ class CallErrors(Exception):
def __init__(self, errors):
Exception.__init__(self, u'These errors have been raised in backend threads '\
'(use --debug option to print backtraces):\n%s' % (
u'\n'.join((u' * %s: %s%s' % (backend, repr(error), backtrace.decode('utf-8') + '\n'
u'\n'.join((u' * %s: %s%s' % (backend.name, repr(error), backtrace.decode('utf-8') + '\n'
if logging.root.level == logging.DEBUG else ''))
for backend, error, backtrace in errors)))
self.errors = copy(errors)

View file

@ -97,6 +97,7 @@ class Weboob(object):
return loaded
def unload_backends(self, names=None):
unloaded = {}
if isinstance(names, basestring):
names = [names]
elif names is None:
@ -106,6 +107,9 @@ class Weboob(object):
backend = self.backend_instances.pop(name)
with backend:
backend.deinit()
unloaded[backend.name] = backend
return unloaded
def get_backend(self, name):
return self.backend_instances[name]