]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
unicode_writer_finish() checks string consistency
authorVictor Stinner <victor.stinner@gmail.com>
Wed, 9 May 2012 01:24:14 +0000 (03:24 +0200)
committerVictor Stinner <victor.stinner@gmail.com>
Wed, 9 May 2012 01:24:14 +0000 (03:24 +0200)
Lib/test/test_unicode.py
Objects/unicodeobject.c

index 8468fbf2c9388f4cbf0ccb81e36a7faf5ab0cbfd..2eadd4df0749f1f70d8d5d0de7de4a1ef9edfbcf 100644 (file)
@@ -1064,6 +1064,10 @@ class UnicodeTest(string_tests.CommonTest,
         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:
index 0722312373d6394a35313bebe6f9b99c62937b0f..2c8378edb05aff1c8da6d97b381465e3088dac3f 100644 (file)
@@ -13320,6 +13320,7 @@ unicode_writer_finish(unicode_writer_t *writer)
         Py_DECREF(writer->buffer);
         return NULL;
     }
+    assert(_PyUnicode_CheckConsistency(writer->buffer, 1));
     return writer->buffer;
 }