#2630: Implement PEP 3138.
The repr() of a string now contains printable Unicode characters unescaped.
The new ascii() builtin can be used to get a repr() with only ASCII characters in it.
PEP and patch were written by Atsuo Ishimoto.
diff --git a/Lib/test/test_builtin.py b/Lib/test/test_builtin.py
index ef562db..7a898b2 100644
--- a/Lib/test/test_builtin.py
+++ b/Lib/test/test_builtin.py
@@ -159,6 +159,20 @@
S = [10, 20, 30]
self.assertEqual(any(x > 42 for x in S), False)
+ def test_ascii(self):
+ self.assertEqual(ascii(''), '\'\'')
+ self.assertEqual(ascii(0), '0')
+ self.assertEqual(ascii(0), '0')
+ self.assertEqual(ascii(()), '()')
+ self.assertEqual(ascii([]), '[]')
+ self.assertEqual(ascii({}), '{}')
+ a = []
+ a.append(a)
+ self.assertEqual(ascii(a), '[[...]]')
+ a = {}
+ a[0] = a
+ self.assertEqual(ascii(a), '{0: {...}}')
+
def test_neg(self):
x = -sys.maxsize-1
self.assert_(isinstance(x, int))