Issue #3751: str.rpartition would perform a left-partition when called with
a unicode argument. Backport of r66119
This commit is contained in:
parent
50b1c4920b
commit
afa0d58a2d
|
@ -1066,6 +1066,9 @@ class MixinStrUnicodeUserStringTest:
|
||||||
self.checkraises(ValueError, S, 'partition', '')
|
self.checkraises(ValueError, S, 'partition', '')
|
||||||
self.checkraises(TypeError, S, 'partition', None)
|
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):
|
def test_rpartition(self):
|
||||||
|
|
||||||
self.checkequal(('this is the rparti', 'ti', 'on method'),
|
self.checkequal(('this is the rparti', 'ti', 'on method'),
|
||||||
|
@ -1081,6 +1084,8 @@ class MixinStrUnicodeUserStringTest:
|
||||||
self.checkraises(ValueError, S, 'rpartition', '')
|
self.checkraises(ValueError, S, 'rpartition', '')
|
||||||
self.checkraises(TypeError, S, 'rpartition', None)
|
self.checkraises(TypeError, S, 'rpartition', None)
|
||||||
|
|
||||||
|
# mixed use of str and unicode
|
||||||
|
self.assertEqual('a/b/c'.rpartition(u'/'), ('a/b', '/', 'c'))
|
||||||
|
|
||||||
class MixinStrStringUserStringTest:
|
class MixinStrStringUserStringTest:
|
||||||
# Additional tests for 8bit strings, i.e. str, UserString and
|
# Additional tests for 8bit strings, i.e. str, UserString and
|
||||||
|
|
|
@ -12,6 +12,9 @@ What's New in Python 2.5.3?
|
||||||
Core and builtins
|
Core and builtins
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
|
- Issue #3751: str.rpartition would perform a left-partition when called with
|
||||||
|
a unicode argument.
|
||||||
|
|
||||||
- Issue #3537: Fix an assertion failure when an empty but presized dict
|
- Issue #3537: Fix an assertion failure when an empty but presized dict
|
||||||
object was stored in the freelist.
|
object was stored in the freelist.
|
||||||
|
|
||||||
|
|
|
@ -1595,7 +1595,7 @@ string_rpartition(PyStringObject *self, PyObject *sep_obj)
|
||||||
}
|
}
|
||||||
#ifdef Py_USING_UNICODE
|
#ifdef Py_USING_UNICODE
|
||||||
else if (PyUnicode_Check(sep_obj))
|
else if (PyUnicode_Check(sep_obj))
|
||||||
return PyUnicode_Partition((PyObject *) self, sep_obj);
|
return PyUnicode_RPartition((PyObject *) self, sep_obj);
|
||||||
#endif
|
#endif
|
||||||
else if (PyObject_AsCharBuffer(sep_obj, &sep, &sep_len))
|
else if (PyObject_AsCharBuffer(sep_obj, &sep, &sep_len))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
Loading…
Reference in New Issue