Fix test_smtplib by munging asynchat some more.

This commit is contained in:
Thomas Wouters 2007-08-31 00:20:14 +00:00
parent 828f04ac3f
commit 74e68c751f
2 changed files with 12 additions and 3 deletions

View File

@ -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:

View File

@ -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()