summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Lib/asynchat.py11
-rw-r--r--Lib/test/test_smtplib.py4
2 files changed, 12 insertions, 3 deletions
diff --git a/Lib/asynchat.py b/Lib/asynchat.py
index 9443656161..0e2457f8ec 100644
--- a/Lib/asynchat.py
+++ b/Lib/asynchat.py
@@ -46,6 +46,7 @@ method) up to the terminator, and then control will be returned to
you - by calling your self.found_terminator() method.
"""
+import sys
import socket
import asyncore
from collections import deque
@@ -91,6 +92,8 @@ class async_chat (asyncore.dispatcher):
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 @@ class async_chat (asyncore.dispatcher):
# 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 @@ class async_chat (asyncore.dispatcher):
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:
diff --git a/Lib/test/test_smtplib.py b/Lib/test/test_smtplib.py
index e0dcc86cad..00c3ad412a 100644
--- a/Lib/test/test_smtplib.py
+++ b/Lib/test/test_smtplib.py
@@ -405,8 +405,8 @@ class SMTPSimTests(TestCase):
self.assertEqual(smtp.vrfy(email), expected_known)
u = 'nobody@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()