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:
parent
ccc663be70
commit
6dfbda042c
4 changed files with 67 additions and 31 deletions
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue