Catch folderfilter errors in repository.IMAP.getfolders()

Rather than throwing ValueError, we now properly throw OfflineImapError
when selecting a folder in folderincludes. So we also need to catch
OfflineImapErrors here. If they are of severity FOLDER, just ignore the
invalid folder and continue. If the error is more severe, bubble it up.

Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
This commit is contained in:
Sebastian Spaeth
2011-08-12 08:56:56 +02:00
committed by Nicolas Sebrecht
parent f6b9c68333
commit fa18968642
2 changed files with 10 additions and 2 deletions

View File

@ -24,6 +24,7 @@ from threading import Event
import re
import types
import os
from sys import exc_info
import netrc
import errno
@ -307,7 +308,12 @@ class IMAPRepository(BaseRepository):
for foldername in self.folderincludes:
try:
imapobj.select(foldername, readonly = 1)
except ValueError:
except OfflineImapError, e:
# couldn't select this folderinclude, so ignore folder.
if e.severity > OfflineImapError.ERROR.FOLDER:
raise
self.ui.error(e, exc_info()[2],
'Invalid folderinclude:')
continue
retval.append(self.getfoldertype()(self.imapserver,
foldername,