Got test_pickletools and test_pickle working.
(Alas, test_cpickle is still broken.)
diff --git a/Lib/test/test_pickle.py b/Lib/test/test_pickle.py
index 585644e..11254f4 100644
--- a/Lib/test/test_pickle.py
+++ b/Lib/test/test_pickle.py
@@ -1,6 +1,6 @@
 import pickle
 import unittest
-from cStringIO import StringIO
+import io
 
 from test import test_support
 
@@ -26,16 +26,16 @@
     error = KeyError
 
     def dumps(self, arg, proto=0, fast=0):
-        f = StringIO()
+        f = io.BytesIO()
         p = pickle.Pickler(f, proto)
         if fast:
             p.fast = fast
         p.dump(arg)
         f.seek(0)
-        return f.read()
+        return bytes(f.read())
 
     def loads(self, buf):
-        f = StringIO(buf)
+        f = io.BytesIO(buf)
         u = pickle.Unpickler(f)
         return u.load()
 
@@ -45,7 +45,7 @@
         class PersPickler(pickle.Pickler):
             def persistent_id(subself, obj):
                 return self.persistent_id(obj)
-        f = StringIO()
+        f = io.BytesIO()
         p = PersPickler(f, proto)
         if fast:
             p.fast = fast
@@ -57,7 +57,7 @@
         class PersUnpickler(pickle.Unpickler):
             def persistent_load(subself, obj):
                 return self.persistent_load(obj)
-        f = StringIO(buf)
+        f = io.BytesIO(buf)
         u = PersUnpickler(f)
         return u.load()