diff --git a/Lib/email/test/test_email.py b/Lib/email/test/test_email.py
index 9639d30..8857e42 100644
--- a/Lib/email/test/test_email.py
+++ b/Lib/email/test/test_email.py
@@ -2279,7 +2279,7 @@
         eq(charsets[0], 'utf-8')
         charset = Charset(charsets[0])
         eq(charset.get_body_encoding(), 'base64')
-        msg.set_payload('hello world', charset=charset)
+        msg.set_payload(b'hello world', charset=charset)
         eq(msg.get_payload(), 'aGVsbG8gd29ybGQ=\n')
         eq(msg.get_payload(decode=True), b'hello world')
         eq(msg['content-transfer-encoding'], 'base64')
@@ -2539,7 +2539,7 @@
     def test_len(self):
         eq = self.assertEqual
         eq(base64mime.header_length('hello'),
-           len(base64mime.body_encode('hello', eol='')))
+           len(base64mime.body_encode(b'hello', eol='')))
         for size in range(15):
             if   size == 0 : bsize = 0
             elif size <= 3 : bsize = 4
@@ -2556,19 +2556,19 @@
 
     def test_encode(self):
         eq = self.assertEqual
-        eq(base64mime.body_encode(''), '')
-        eq(base64mime.body_encode('hello'), 'aGVsbG8=\n')
+        eq(base64mime.body_encode(b''), b'')
+        eq(base64mime.body_encode(b'hello'), 'aGVsbG8=\n')
         # Test the binary flag
-        eq(base64mime.body_encode('hello\n'), 'aGVsbG8K\n')
+        eq(base64mime.body_encode(b'hello\n'), 'aGVsbG8K\n')
         # Test the maxlinelen arg
-        eq(base64mime.body_encode('xxxx ' * 20, maxlinelen=40), """\
+        eq(base64mime.body_encode(b'xxxx ' * 20, maxlinelen=40), """\
 eHh4eCB4eHh4IHh4eHggeHh4eCB4eHh4IHh4eHgg
 eHh4eCB4eHh4IHh4eHggeHh4eCB4eHh4IHh4eHgg
 eHh4eCB4eHh4IHh4eHggeHh4eCB4eHh4IHh4eHgg
 eHh4eCB4eHh4IA==
 """)
         # Test the eol argument
-        eq(base64mime.body_encode('xxxx ' * 20, maxlinelen=40, eol='\r\n'),
+        eq(base64mime.body_encode(b'xxxx ' * 20, maxlinelen=40, eol='\r\n'),
            """\
 eHh4eCB4eHh4IHh4eHggeHh4eCB4eHh4IHh4eHgg\r
 eHh4eCB4eHh4IHh4eHggeHh4eCB4eHh4IHh4eHgg\r
@@ -2734,7 +2734,7 @@
         eq('hello w=F6rld', c.body_encode('hello w\xf6rld'))
         # Try a charset with Base64 body encoding
         c = Charset('utf-8')
-        eq('aGVsbG8gd29ybGQ=\n', c.body_encode('hello world'))
+        eq('aGVsbG8gd29ybGQ=\n', c.body_encode(b'hello world'))
         # Try a charset with None body encoding
         c = Charset('us-ascii')
         eq('hello world', c.body_encode('hello world'))
