Skip to content

Commit 9027d9e

Browse files
committed
address review feedback
1 parent d533faf commit 9027d9e

File tree

2 files changed

+9
-7
lines changed

2 files changed

+9
-7
lines changed

Lib/test/test_types.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2170,15 +2170,17 @@ class Spam(types.SimpleNamespace):
21702170
def test_replace_invalid_subtype(self):
21712171
# See https://github.com/python/cpython/issues/143636.
21722172
class NS(types.SimpleNamespace):
2173-
called = False
21742173
def __new__(cls, *args, **kwargs):
2175-
if cls.called:
2174+
if created:
21762175
return object()
2177-
cls.called = True
21782176
return super().__new__(cls)
21792177

2180-
err = re.escape("expecting a types.SimpleNamespace object, got object")
2181-
self.assertRaisesRegex(TypeError, err, NS().__replace__)
2178+
created = False
2179+
ns = NS()
2180+
created = True
2181+
err = re.escape("NS.__new__() must return an instance "
2182+
"of a subclass of types.SimpleNamespace")
2183+
self.assertRaisesRegex(TypeError, err, copy.replace, ns)
21822184

21832185
def test_fake_namespace_compare(self):
21842186
# Issue #24257: Incorrect use of PyObject_IsInstance() caused

Objects/namespaceobject.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -237,8 +237,8 @@ namespace_replace(PyObject *self, PyObject *args, PyObject *kwargs)
237237
}
238238
if (!_PyNamespace_Check(result)) {
239239
PyErr_Format(PyExc_TypeError,
240-
"expecting a %s object, got %T",
241-
_PyNamespace_Type.tp_name, result);
240+
"%T.__new__() must return an instance of a subclass of %s",
241+
self, _PyNamespace_Type.tp_name);
242242
Py_DECREF(result);
243243
return NULL;
244244
}

0 commit comments

Comments
 (0)