Make test_new pass.

This commit is contained in:
Guido van Rossum 2007-05-17 21:15:39 +00:00
parent 1a1f61b48f
commit bbbd4fdba2
2 changed files with 6 additions and 1 deletions

View File

@ -143,7 +143,7 @@ class NewTest(unittest.TestCase):
firstlineno, lnotab)
# new.code used to be a way to mutate a tuple...
class S(str):
class S(str8):
pass
t = (S("ab"),)
d = new.code(argcount, kwonlyargcount, nlocals, stacksize,

View File

@ -482,6 +482,11 @@ func_new(PyTypeObject* type, PyObject* args, PyObject* kw)
&PyDict_Type, &globals,
&name, &defaults, &closure))
return NULL;
if (PyUnicode_Check(name)) {
name = _PyUnicode_AsDefaultEncodedString(name, NULL);
if (name == NULL)
return NULL;
}
if (name != Py_None && !PyString_Check(name)) {
PyErr_SetString(PyExc_TypeError,
"arg 3 (name) must be None or string");