Commit fc6e8fe5 authored by Eric Smith's avatar Eric Smith

Simplifed argument parsing in object.__format__, added test case.

parent 0041223f
......@@ -558,6 +558,10 @@ class BuiltinTest(unittest.TestCase):
# TypeError because self.__format__ returns the wrong type
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
self.assertEqual(format(0, C('10')), ' 0')
......
......@@ -2950,12 +2950,8 @@ object_format(PyObject *self, PyObject *args)
PyObject *result = NULL;
PyObject *format_meth = NULL;
if (!PyArg_ParseTuple(args, "O:__format__", &format_spec))
if (!PyArg_ParseTuple(args, "U:__format__", &format_spec))
return NULL;
if (!PyUnicode_Check(format_spec)) {
PyErr_SetString(PyExc_TypeError, "Unicode object required");
return NULL;
}
self_as_str = PyObject_Str(self);
if (self_as_str != NULL) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment