summaryrefslogtreecommitdiffstatshomepage
path: root/tests/basics/class_delattr_setattr.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/basics/class_delattr_setattr.py')
-rw-r--r--tests/basics/class_delattr_setattr.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/basics/class_delattr_setattr.py b/tests/basics/class_delattr_setattr.py
index 190b4875b9..8fe1bb6fc1 100644
--- a/tests/basics/class_delattr_setattr.py
+++ b/tests/basics/class_delattr_setattr.py
@@ -60,3 +60,29 @@ try:
print(a.a)
except AttributeError:
print("AttributeError")
+
+# test object.__setattr__
+class C:
+ def __init__(self):
+ pass
+
+ def __setattr__(self, attr, value):
+ print(attr, "=", value)
+
+c = C()
+c.a = 5
+try:
+ print(c.a)
+except AttributeError:
+ print("AttributeError")
+
+object.__setattr__(c, "a", 5)
+super(C, c).__setattr__("b", 6)
+print(c.a)
+print(c.b)
+
+try:
+ # attribute name must be string
+ object.__setattr__(c, 5, 5)
+except TypeError:
+ print("TypeError")