MCPcopy
hub / github.com/OfflineIMAP/offlineimap / select

Method select

offlineimap/imaplibutil.py:42–72  ·  view source on GitHub ↗

Selects a mailbox on the IMAP server :returns: 'OK' on success, nothing if the folder was already selected or raises an :exc:`OfflineImapError`.

(self, mailbox='INBOX', readonly=False, force=False)

Source from the content-addressed store, hash-verified

40 return None
41
42 def select(self, mailbox='INBOX', readonly=False, force=False):
43 """Selects a mailbox on the IMAP server
44
45 :returns: 'OK' on success, nothing if the folder was already
46 selected or raises an :exc:`OfflineImapError`."""
47
48 if self.__getselectedfolder() == mailbox and \
49 self.is_readonly == readonly and \
50 not force:
51 # No change; return.
52 return
53 try:
54 result = super(UsefulIMAPMixIn, self).select(mailbox, readonly)
55 except self.readonly as e:
56 # pass self.readonly to our callers
57 raise
58 except self.abort as e:
59 # self.abort is raised when we are supposed to retry
60 errstr = "Server '%s' closed connection, error on SELECT '%s'. Ser"\
61 "ver said: %s" % (self.host, mailbox, e.args[0])
62 severity = OfflineImapError.ERROR.FOLDER_RETRY
63 six.reraise(OfflineImapError,
64 OfflineImapError(errstr, severity),
65 exc_info()[2])
66 if result[0] != 'OK':
67 #in case of error, bail out with OfflineImapError
68 errstr = "Error SELECTing mailbox '%s', server reply:\n%s" %\
69 (mailbox, result)
70 severity = OfflineImapError.ERROR.FOLDER
71 raise OfflineImapError(errstr, severity)
72 return result
73
74 # Overrides private function from IMAP4 (@imaplib2)
75 def _mesg(self, s, tn=None, secs=None):

Callers

nothing calls this directly

Calls 2

__getselectedfolderMethod · 0.95
OfflineImapErrorClass · 0.90

Tested by

no test coverage detected