diff options
author | Amaury Forgeot d'Arc <amauryfa@gmail.com> | 2008-09-01 19:52:00 (GMT) |
---|---|---|
committer | Amaury Forgeot d'Arc <amauryfa@gmail.com> | 2008-09-01 19:52:00 (GMT) |
commit | 3571fbfed7c49895a03b8c0de1fa47a9de112da9 (patch) | |
tree | 296f4aa5af122683ce6e20d0da17d7cc8fe48306 | |
parent | aa5f873980994d1a216bcbe3d276d6a0b7d4b1cc (diff) | |
download | cpython-3571fbfed7c49895a03b8c0de1fa47a9de112da9.zip cpython-3571fbfed7c49895a03b8c0de1fa47a9de112da9.tar.gz cpython-3571fbfed7c49895a03b8c0de1fa47a9de112da9.tar.bz2 |
Issue #3751: str.rpartition would perform a left-partition when called with
a unicode argument.
will backport.
-rw-r--r-- | Lib/test/string_tests.py | 5 | ||||
-rw-r--r-- | Misc/NEWS | 3 | ||||
-rw-r--r-- | Objects/stringobject.c | 2 |
3 files changed, 9 insertions, 1 deletions
diff --git a/Lib/test/string_tests.py b/Lib/test/string_tests.py index 3590b8e..63279ec 100644 --- a/Lib/test/string_tests.py +++ b/Lib/test/string_tests.py @@ -1117,6 +1117,9 @@ class MixinStrUnicodeUserStringTest: self.checkraises(ValueError, S, 'partition', '') self.checkraises(TypeError, S, 'partition', None) + # mixed use of str and unicode + self.assertEqual('a/b/c'.partition(u'/'), ('a', '/', 'b/c')) + def test_rpartition(self): self.checkequal(('this is the rparti', 'ti', 'on method'), @@ -1132,6 +1135,8 @@ class MixinStrUnicodeUserStringTest: self.checkraises(ValueError, S, 'rpartition', '') self.checkraises(TypeError, S, 'rpartition', None) + # mixed use of str and unicode + self.assertEqual('a/b/c'.rpartition(u'/'), ('a/b', '/', 'c')) class MixinStrStringUserStringTest: # Additional tests for 8bit strings, i.e. str, UserString and @@ -12,6 +12,9 @@ What's New in Python 2.6 release candidate 1? Core and Builtins ----------------- +- Issue #3751: str.rpartition would perform a left-partition when called with + a unicode argument. + - Issue #3683: Fix compilation when --without-threads is given. - Issue #3668: Fix a memory leak with the "s*" argument parser in diff --git a/Objects/stringobject.c b/Objects/stringobject.c index 5bf4add..b9a70a0 100644 --- a/Objects/stringobject.c +++ b/Objects/stringobject.c @@ -1638,7 +1638,7 @@ string_rpartition(PyStringObject *self, PyObject *sep_obj) } #ifdef Py_USING_UNICODE else if (PyUnicode_Check(sep_obj)) - return PyUnicode_Partition((PyObject *) self, sep_obj); + return PyUnicode_RPartition((PyObject *) self, sep_obj); #endif else if (PyObject_AsCharBuffer(sep_obj, &sep, &sep_len)) return NULL; |