Skip to content

Commit

Permalink
Add tests to restore coverage
Browse files Browse the repository at this point in the history
  • Loading branch information
Viktor Dick committed Jul 20, 2020
1 parent 72947bc commit 5bd2393
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 9 deletions.
5 changes: 0 additions & 5 deletions src/zope/sendmail/queue.py
Original file line number Diff line number Diff line change
Expand Up @@ -149,11 +149,6 @@ def _parseMessage(self, message):
toaddrs = ()
rest = ""

# The most common use case is to use UTF-8 encoding. If something else
# is needed, pass bytes
if not isinstance(message, bytes):
message = message.encode('utf-8')

try:
first, second, rest = message.split(b'\n', 2)
except ValueError:
Expand Down
21 changes: 17 additions & 4 deletions src/zope/sendmail/tests/test_delivery.py
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ def testInterface(self):
verifyObject(IDirectMailDelivery, delivery)
self.assertEqual(delivery.mailer, mailer)

def testSend(self):
def testSend(self, send_unicode=False):
mailer = MailerStub()
delivery = DirectMailDelivery(mailer)
fromaddr = 'Jim <jim@example.com'
Expand All @@ -145,12 +145,22 @@ def testSend(self):
b'\n'
b'This is just an example\n')

if send_unicode:
opt_headers_bytes = opt_headers
opt_headers = opt_headers.decode('utf-8')
message_bytes = message + b'\xc3\xa4'
message = message_bytes.decode('utf-8')
else:
message_bytes = message
opt_headers_bytes = opt_headers

msgid = delivery.send(fromaddr, toaddrs, opt_headers + message)
self.assertEqual(msgid, '20030519.1234@example.org')
self.assertEqual(mailer.sent_messages, [])
transaction.commit()
self.assertEqual(mailer.sent_messages,
[(fromaddr, toaddrs, opt_headers + message)])
[(fromaddr, toaddrs,
opt_headers_bytes + message_bytes)])

mailer.sent_messages = []
msgid = delivery.send(fromaddr, toaddrs, message)
Expand All @@ -160,8 +170,8 @@ def testSend(self):
self.assertEqual(len(mailer.sent_messages), 1)
self.assertEqual(mailer.sent_messages[0][0], fromaddr)
self.assertEqual(mailer.sent_messages[0][1], toaddrs)
self.assertTrue(mailer.sent_messages[0][2].endswith(message))
new_headers = mailer.sent_messages[0][2][:-len(message)]
self.assertTrue(mailer.sent_messages[0][2].endswith(message_bytes))
new_headers = mailer.sent_messages[0][2][:-len(message_bytes)]
self.assertIn(('Message-Id: <%s>' % msgid).encode(), new_headers)

mailer.sent_messages = []
Expand All @@ -170,6 +180,9 @@ def testSend(self):
transaction.abort()
self.assertEqual(mailer.sent_messages, [])

def testSendUnicode(self):
self.testSend(send_unicode=True)

def testBrokenMailerErrorsAreEaten(self):
from zope.testing.loggingsupport import InstalledHandler
mailer = BrokenMailerStub()
Expand Down

0 comments on commit 5bd2393

Please sign in to comment.