Forward port r86386 after it fixed the 3.1 buildbot issues

This commit is contained in:
Antoine Pitrou 2010-11-10 00:18:40 +00:00
parent d79f3c8b3a
commit dac47914d7
1 changed files with 6 additions and 3 deletions

View File

@ -818,7 +818,7 @@ class IMAP4:
def _check_bye(self): def _check_bye(self):
bye = self.untagged_responses.get('BYE') bye = self.untagged_responses.get('BYE')
if bye: if bye:
raise self.abort(bye[-1]) raise self.abort(bye[-1].decode('ascii', 'replace'))
def _command(self, name, *args): def _command(self, name, *args):
@ -899,14 +899,17 @@ class IMAP4:
def _command_complete(self, name, tag): def _command_complete(self, name, tag):
self._check_bye() # BYE is expected after LOGOUT
if name != 'LOGOUT':
self._check_bye()
try: try:
typ, data = self._get_tagged_response(tag) typ, data = self._get_tagged_response(tag)
except self.abort as val: except self.abort as val:
raise self.abort('command: %s => %s' % (name, val)) raise self.abort('command: %s => %s' % (name, val))
except self.error as val: except self.error as val:
raise self.error('command: %s => %s' % (name, val)) raise self.error('command: %s => %s' % (name, val))
self._check_bye() if name != 'LOGOUT':
self._check_bye()
if typ == 'BAD': if typ == 'BAD':
raise self.error('%s command error: %s %s' % (name, typ, data)) raise self.error('%s command error: %s %s' % (name, typ, data))
return typ, data return typ, data