Author: Armin Rigo <[email protected]>
Branch: py3.5
Changeset: r87841:bf926a7a616f
Date: 2016-10-17 15:06 +0200
http://bitbucket.org/pypy/pypy/changeset/bf926a7a616f/
Log: object.__init__() now complains in more cases
diff --git a/pypy/objspace/std/objectobject.py
b/pypy/objspace/std/objectobject.py
--- a/pypy/objspace/std/objectobject.py
+++ b/pypy/objspace/std/objectobject.py
@@ -112,7 +112,9 @@
if _excess_args(__args__):
w_type = space.type(w_obj)
w_parent_new, _ = space.lookup_in_type_where(w_type, '__new__')
- if w_parent_new is space.w_object:
+ w_parent_init, _ = space.lookup_in_type_where(w_type, '__init__')
+ if (w_parent_new is space.w_object or
+ w_parent_init is not space.w_object):
raise oefmt(space.w_TypeError,
"object.__init__() takes no parameters")
diff --git a/pypy/objspace/std/test/test_obj.py
b/pypy/objspace/std/test/test_obj.py
--- a/pypy/objspace/std/test/test_obj.py
+++ b/pypy/objspace/std/test/test_obj.py
@@ -89,13 +89,7 @@
def __init__(self):
super(B, self).__init__(a=3)
- #-- pypy doesn't raise the DeprecationWarning
- #with warnings.catch_warnings(record=True) as log:
- # warnings.simplefilter("always", DeprecationWarning)
- # B()
- #assert len(log) == 1
- #assert log[0].message.args == ("object.__init__() takes no
parameters",)
- #assert type(log[0].message) is DeprecationWarning
+ raises(TypeError, B)
def test_object_str(self):
# obscure case: __str__() must delegate to __repr__() without adding
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit