Simplifed argument parsing in object.__format__, added test case.
diff --git a/Objects/typeobject.c b/Objects/typeobject.c
index 2a0dd24..682c029 100644
--- a/Objects/typeobject.c
+++ b/Objects/typeobject.c
@@ -2950,12 +2950,8 @@
         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) {