mirror of
https://github.com/python/cpython.git
synced 2025-09-27 02:39:58 +00:00
Simplifed argument parsing in object.__format__, added test case.
This commit is contained in:
parent
0041223f51
commit
fc6e8fe5ed
2 changed files with 5 additions and 5 deletions
|
@ -558,6 +558,10 @@ class BuiltinTest(unittest.TestCase):
|
||||||
# TypeError because self.__format__ returns the wrong type
|
# TypeError because self.__format__ returns the wrong type
|
||||||
self.assertRaises(TypeError, format, B(), "")
|
self.assertRaises(TypeError, format, B(), "")
|
||||||
|
|
||||||
|
# TypeError because format_spec is not unicode
|
||||||
|
self.assertRaises(TypeError, format, object(), 4)
|
||||||
|
self.assertRaises(TypeError, format, object(), object())
|
||||||
|
|
||||||
# make sure we can take a subclass of str as a format spec
|
# make sure we can take a subclass of str as a format spec
|
||||||
self.assertEqual(format(0, C('10')), ' 0')
|
self.assertEqual(format(0, C('10')), ' 0')
|
||||||
|
|
||||||
|
|
|
@ -2950,12 +2950,8 @@ object_format(PyObject *self, PyObject *args)
|
||||||
PyObject *result = NULL;
|
PyObject *result = NULL;
|
||||||
PyObject *format_meth = NULL;
|
PyObject *format_meth = NULL;
|
||||||
|
|
||||||
if (!PyArg_ParseTuple(args, "O:__format__", &format_spec))
|
if (!PyArg_ParseTuple(args, "U:__format__", &format_spec))
|
||||||
return NULL;
|
return NULL;
|
||||||
if (!PyUnicode_Check(format_spec)) {
|
|
||||||
PyErr_SetString(PyExc_TypeError, "Unicode object required");
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
self_as_str = PyObject_Str(self);
|
self_as_str = PyObject_Str(self);
|
||||||
if (self_as_str != NULL) {
|
if (self_as_str != NULL) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue