[Python-checkins] cpython: unicode_writer_finish() checks string consistency

victor.stinner python-checkins at python.org
Wed May 9 03:25:11 CEST 2012


http://hg.python.org/cpython/rev/6d39b5ea4542
changeset:   76841:6d39b5ea4542
user:        Victor Stinner <victor.stinner at gmail.com>
date:        Wed May 09 03:24:14 2012 +0200
summary:
  unicode_writer_finish() checks string consistency

files:
  Lib/test/test_unicode.py |  4 ++++
  Objects/unicodeobject.c  |  1 +
  2 files changed, 5 insertions(+), 0 deletions(-)


diff --git a/Lib/test/test_unicode.py b/Lib/test/test_unicode.py
--- a/Lib/test/test_unicode.py
+++ b/Lib/test/test_unicode.py
@@ -1064,6 +1064,10 @@
         self.assertEqual('%f' % INF, 'inf')
         self.assertEqual('%F' % INF, 'INF')
 
+        # PEP 393
+        self.assertEqual('%.1s' % "a\xe9\u20ac", 'a')
+        self.assertEqual('%.2s' % "a\xe9\u20ac", 'a\xe9')
+
     def test_startswith_endswith_errors(self):
         for meth in ('foo'.startswith, 'foo'.endswith):
             with self.assertRaises(TypeError) as cm:
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -13320,6 +13320,7 @@
         Py_DECREF(writer->buffer);
         return NULL;
     }
+    assert(_PyUnicode_CheckConsistency(writer->buffer, 1));
     return writer->buffer;
 }
 

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list