[Python-checkins] r86485 - in python/branches/py3k: Lib/imaplib.py Lib/test/test_imaplib.py Misc/NEWS

antoine.pitrou python-checkins at python.org
Tue Nov 16 18:55:28 CET 2010


Author: antoine.pitrou
Date: Tue Nov 16 18:55:26 2010
New Revision: 86485

Log:
Issue #10429: IMAP.starttls() stored the capabilities as bytes objects,
rather than strings.



Modified:
   python/branches/py3k/Lib/imaplib.py
   python/branches/py3k/Lib/test/test_imaplib.py
   python/branches/py3k/Misc/NEWS

Modified: python/branches/py3k/Lib/imaplib.py
==============================================================================
--- python/branches/py3k/Lib/imaplib.py	(original)
+++ python/branches/py3k/Lib/imaplib.py	Tue Nov 16 18:55:26 2010
@@ -196,13 +196,7 @@
         else:
             raise self.error(self.welcome)
 
-        typ, dat = self.capability()
-        if dat == [None]:
-            raise self.error('no CAPABILITY response from server')
-        dat = str(dat[-1], "ASCII")
-        dat = dat.upper()
-        self.capabilities = tuple(dat.split())
-
+        self._get_capabilities()
         if __debug__:
             if self.debug >= 3:
                 self._mesg('CAPABILITIES: %r' % (self.capabilities,))
@@ -737,10 +731,7 @@
             self.sock = ssl_context.wrap_socket(self.sock)
             self.file = self.sock.makefile('rb')
             self._tls_established = True
-            typ, dat = self.capability()
-            if dat == [None]:
-                raise self.error('no CAPABILITY response from server')
-            self.capabilities = tuple(dat[-1].upper().split())
+            self._get_capabilities()
         else:
             raise self.error("Couldn't establish TLS session")
         return self._untagged_response(typ, dat, name)
@@ -956,6 +947,15 @@
         return typ, data
 
 
+    def _get_capabilities(self):
+        typ, dat = self.capability()
+        if dat == [None]:
+            raise self.error('no CAPABILITY response from server')
+        dat = str(dat[-1], "ASCII")
+        dat = dat.upper()
+        self.capabilities = tuple(dat.split())
+
+
     def _get_response(self):
 
         # Read response and store.

Modified: python/branches/py3k/Lib/test/test_imaplib.py
==============================================================================
--- python/branches/py3k/Lib/test/test_imaplib.py	(original)
+++ python/branches/py3k/Lib/test/test_imaplib.py	Tue Nov 16 18:55:26 2010
@@ -208,6 +208,8 @@
             self.server.logout()
 
     def test_logincapa(self):
+        for cap in self.server.capabilities:
+            self.assertIsInstance(cap, str)
         self.assertTrue('LOGINDISABLED' in self.server.capabilities)
         self.assertTrue('AUTH=ANONYMOUS' in self.server.capabilities)
         rs = self.server.login(self.username, self.password)
@@ -228,6 +230,8 @@
         self.assertEqual(rs[0], 'OK')
 
     def test_logincapa(self):
+        for cap in self.server.capabilities:
+            self.assertIsInstance(cap, str)
         self.assertFalse('LOGINDISABLED' in self.server.capabilities)
 
 
@@ -237,6 +241,8 @@
     imap_class = IMAP4_SSL
 
     def test_logincapa(self):
+        for cap in self.server.capabilities:
+            self.assertIsInstance(cap, str)
         self.assertFalse('LOGINDISABLED' in self.server.capabilities)
         self.assertTrue('AUTH=PLAIN' in self.server.capabilities)
 

Modified: python/branches/py3k/Misc/NEWS
==============================================================================
--- python/branches/py3k/Misc/NEWS	(original)
+++ python/branches/py3k/Misc/NEWS	Tue Nov 16 18:55:26 2010
@@ -13,6 +13,9 @@
 Library
 -------
 
+- Issue #10429: IMAP.starttls() stored the capabilities as bytes objects,
+  rather than strings.
+
 
 What's New in Python 3.2 Alpha 4?
 =================================


More information about the Python-checkins mailing list