[Python-checkins] r85700 - in python/branches/py3k: Lib/test/test_unicode.py Objects/unicodeobject.c

victor.stinner python-checkins at python.org
Mon Oct 18 22:59:24 CEST 2010


Author: victor.stinner
Date: Mon Oct 18 22:59:24 2010
New Revision: 85700

Log:
PyUnicode_FromFormatV(): Fix %A format

It was not completly implemented. Add a test.


Modified:
   python/branches/py3k/Lib/test/test_unicode.py
   python/branches/py3k/Objects/unicodeobject.c

Modified: python/branches/py3k/Lib/test/test_unicode.py
==============================================================================
--- python/branches/py3k/Lib/test/test_unicode.py	(original)
+++ python/branches/py3k/Lib/test/test_unicode.py	Mon Oct 18 22:59:24 2010
@@ -1380,20 +1380,23 @@
         self.assertEqual("{}".format(s), '__str__ overridden')
 
     def test_from_format(self):
-        # Ensure that PyUnicode_FromFormat() raises an error for a non-ascii
-        # format string.
         from _testcapi import format_unicode
 
         # ascii format, non-ascii argument
         text = format_unicode(b'ascii\x7f=%U', 'unicode\xe9')
         self.assertEqual(text, 'ascii\x7f=unicode\xe9')
 
-        # non-ascii format, ascii argument
+        # non-ascii format, ascii argument: ensure that PyUnicode_FromFormat()
+        # raises an error for a non-ascii format string.
         self.assertRaisesRegexp(ValueError,
             '^PyUnicode_FromFormatV\(\) expects an ASCII-encoded format '
             'string, got a non-ASCII byte: 0xe9$',
             format_unicode, b'unicode\xe9=%s', 'ascii')
 
+        # other tests
+        text = format_unicode(b'%%A:%A', 'abc\xe9\uabcd\U0010ffff')
+        self.assertEqual(text, r"%A:'abc\xe9\uabcd\U0010ffff'")
+
     # Test PyUnicode_AsWideChar()
     def test_aswidechar(self):
         from _testcapi import unicode_aswidechar

Modified: python/branches/py3k/Objects/unicodeobject.c
==============================================================================
--- python/branches/py3k/Objects/unicodeobject.c	(original)
+++ python/branches/py3k/Objects/unicodeobject.c	Mon Oct 18 22:59:24 2010
@@ -1074,6 +1074,7 @@
             }
             case 'S':
             case 'R':
+            case 'A':
             {
                 Py_UNICODE *ucopy;
                 Py_ssize_t usize;


More information about the Python-checkins mailing list