summaryrefslogtreecommitdiff
path: root/tests/basics/special_methods2.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/basics/special_methods2.py')
-rw-r--r--tests/basics/special_methods2.py37
1 files changed, 16 insertions, 21 deletions
diff --git a/tests/basics/special_methods2.py b/tests/basics/special_methods2.py
index ba7cf27cd..c21618e93 100644
--- a/tests/basics/special_methods2.py
+++ b/tests/basics/special_methods2.py
@@ -94,6 +94,9 @@ class Cud():
print("__isub__ called")
return self
+ def __dir__(self):
+ return ['a', 'b', 'c']
+
cud1 = Cud()
cud2 = Cud()
@@ -112,33 +115,25 @@ cud1 / cud2
cud2 // cud1
cud1 += cud2
cud1 -= cud2
+cud1 % 2
+cud1 ** 2
+cud1 | cud2
+cud1 & cud2
+cud1 ^ cud2
+cud1 << 1
+cud1 >> 1
+
+# test that dir() delegates to __dir__ special method
+print(dir(cud1))
+
+# test that dir() does not delegate to __dir__ for the type
+print('a' in dir(Cud))
# TODO: the following operations are not supported on every ports
#
# ne is not supported, !(eq) is called instead
#cud1 != cud2
#
-# binary and is not supported
-# cud1 & cud2
-#
-# binary lshift is not supported
-# cud1<<1
-#
-# modulus is not supported
-# cud1 % 2
-#
-# binary or is not supported
-# cud1 | cud2
-#
-# pow is not supported
-# cud1**2
-#
-# rshift is not suported
-# cud1>>1
-#
-# xor is not supported
-# cud1^cud2
-#
# in the followin test, cpython still calls __eq__
# cud3=cud1
# cud3==cud1