summaryrefslogtreecommitdiff
path: root/tests/basics/builtin_hasattr.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/basics/builtin_hasattr.py')
-rw-r--r--tests/basics/builtin_hasattr.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/basics/builtin_hasattr.py b/tests/basics/builtin_hasattr.py
new file mode 100644
index 000000000..118a19e57
--- /dev/null
+++ b/tests/basics/builtin_hasattr.py
@@ -0,0 +1,39 @@
+class A:
+
+ var = 132
+
+ def __init__(self):
+ self.var2 = 34
+
+ def meth(self, i):
+ return 42 + i
+
+
+a = A()
+print(hasattr(a, "var"))
+print(hasattr(a, "var2"))
+print(hasattr(a, "meth"))
+print(hasattr(a, "_none_such"))
+print(hasattr(list, "foo"))
+
+class C:
+
+ def __getattr__(self, attr):
+ if attr == "exists":
+ return attr
+ raise AttributeError
+
+c = C()
+print(hasattr(c, "exists"))
+# TODO
+#print(hasattr(c, "doesnt_exist"))
+
+try:
+ hasattr(1, b'123')
+except TypeError:
+ print('TypeError')
+
+try:
+ hasattr(1, 123)
+except TypeError:
+ print('TypeError')