[Python-3000-checkins] r57788 - in python/branches/py3k/Lib: asynchat.py test/test_smtplib.py

thomas.wouters python-3000-checkins at python.org
Fri Aug 31 02:20:14 CEST 2007


Author: thomas.wouters
Date: Fri Aug 31 02:20:14 2007
New Revision: 57788

Modified:
   python/branches/py3k/Lib/asynchat.py
   python/branches/py3k/Lib/test/test_smtplib.py
Log:

Fix test_smtplib by munging asynchat some more.



Modified: python/branches/py3k/Lib/asynchat.py
==============================================================================
--- python/branches/py3k/Lib/asynchat.py	(original)
+++ python/branches/py3k/Lib/asynchat.py	Fri Aug 31 02:20:14 2007
@@ -46,6 +46,7 @@
 you - by calling your self.found_terminator() method.
 """
 
+import sys
 import socket
 import asyncore
 from collections import deque
@@ -91,6 +92,8 @@
             self.handle_error()
             return
 
+        if isinstance(data, str):
+            data = data.encode('ascii')
         self.ac_in_buffer = self.ac_in_buffer + bytes(data)
 
         # Continue to search for self.terminator in self.ac_in_buffer,
@@ -126,6 +129,8 @@
                 # 3) end of buffer does not match any prefix:
                 #    collect data
                 terminator_len = len(terminator)
+                if isinstance(terminator, str):
+                    terminator = terminator.encode('ascii')
                 index = self.ac_in_buffer.find(terminator)
                 if index != -1:
                     # we found the terminator
@@ -195,11 +200,15 @@
                         self.close()
                     return
                 elif isinstance(p, str) or isinstance(p, bytes):
+                    if isinstance(p, str):
+                        p = p.encode('ascii')
                     self.producer_fifo.pop()
-                    self.ac_out_buffer = self.ac_out_buffer + bytes(p)
+                    self.ac_out_buffer = self.ac_out_buffer + p
                     return
                 data = p.more()
                 if data:
+                    if isinstance(data, str):
+                        data = data.encode('ascii')
                     self.ac_out_buffer = self.ac_out_buffer + bytes(data)
                     return
                 else:

Modified: python/branches/py3k/Lib/test/test_smtplib.py
==============================================================================
--- python/branches/py3k/Lib/test/test_smtplib.py	(original)
+++ python/branches/py3k/Lib/test/test_smtplib.py	Fri Aug 31 02:20:14 2007
@@ -405,8 +405,8 @@
             self.assertEqual(smtp.vrfy(email), expected_known)
 
         u = 'nobody at nowhere.com'
-        expected_unknown = (550, bytes('No such user: %s'
-                                       % smtplib.quoteaddr(u)))
+        expected_unknown = (550, ('No such user: %s'
+                                       % smtplib.quoteaddr(u)).encode('ascii'))
         self.assertEqual(smtp.vrfy(u), expected_unknown)
         smtp.quit()
 


More information about the Python-3000-checkins mailing list