Merging the py3k-pep3137 branch back into the py3k branch.
No detailed change log; just check out the change log for the py3k-pep3137
branch. The most obvious changes:
- str8 renamed to bytes (PyString at the C level);
- bytes renamed to buffer (PyBytes at the C level);
- PyString and PyUnicode are no longer compatible.
I.e. we now have an immutable bytes type and a mutable bytes type.
The behavior of PyString was modified quite a bit, to make it more
bytes-like. Some changes are still on the to-do list.
diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py
index 8741830..ad7082e 100644
--- a/Lib/test/test_sys.py
+++ b/Lib/test/test_sys.py
@@ -300,7 +300,7 @@
def test_intern(self):
self.assertRaises(TypeError, sys.intern)
- s = str8(b"never interned before")
+ s = "never interned before"
self.assert_(sys.intern(s) is s)
s2 = s.swapcase().swapcase()
self.assert_(sys.intern(s2) is s)
@@ -310,28 +310,11 @@
# We don't want them in the interned dict and if they aren't
# actually interned, we don't want to create the appearance
# that they are by allowing intern() to succeeed.
- class S(str8):
+ class S(str):
def __hash__(self):
return 123
- self.assertRaises(TypeError, sys.intern, S(b"abc"))
-
- s = "never interned as unicode before"
- self.assert_(sys.intern(s) is s)
- s2 = s.swapcase().swapcase()
- self.assert_(sys.intern(s2) is s)
-
- class U(str):
- def __hash__(self):
- return 123
-
- self.assertRaises(TypeError, sys.intern, U("abc"))
-
- # It's still safe to pass these strings to routines that
- # call intern internally, e.g. PyObject_SetAttr().
- s = U("abc")
- setattr(s, s, s)
- self.assertEqual(getattr(s, s), s)
+ self.assertRaises(TypeError, sys.intern, S("abc"))
def test_main():