summaryrefslogtreecommitdiffstatshomepage
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/basics/class-emptybases.py2
-rw-r--r--tests/basics/class-getattr.py16
-rw-r--r--tests/basics/class-staticclassmethod.py25
-rw-r--r--tests/basics/closure-defargs.py5
4 files changed, 47 insertions, 1 deletions
diff --git a/tests/basics/class-emptybases.py b/tests/basics/class-emptybases.py
new file mode 100644
index 0000000000..6d792453e1
--- /dev/null
+++ b/tests/basics/class-emptybases.py
@@ -0,0 +1,2 @@
+class A():
+ pass
diff --git a/tests/basics/class-getattr.py b/tests/basics/class-getattr.py
new file mode 100644
index 0000000000..1f875ce538
--- /dev/null
+++ b/tests/basics/class-getattr.py
@@ -0,0 +1,16 @@
+# test that __getattr__, __getattrribute__ and instance members don't override builtins
+class C:
+ def __init__(self):
+ self.__add__ = lambda: print('member __add__')
+ def __add__(self, x):
+ print('__add__')
+ def __getattr__(self, attr):
+ print('__getattr__', attr)
+ return None
+ def __getattrribute__(self, attr):
+ print('__getattrribute__', attr)
+ return None
+
+c = C()
+c.__add__
+c + 1 # should call __add__
diff --git a/tests/basics/class-staticclassmethod.py b/tests/basics/class-staticclassmethod.py
new file mode 100644
index 0000000000..1cb59d5c7b
--- /dev/null
+++ b/tests/basics/class-staticclassmethod.py
@@ -0,0 +1,25 @@
+# test static and class methods
+
+class C:
+ @staticmethod
+ def f(rhs):
+ print('f', rhs)
+ @classmethod
+ def g(self, rhs):
+ print('g', rhs)
+
+ # builtin wrapped in staticmethod
+ @staticmethod
+ def __sub__(rhs):
+ print('sub', rhs)
+ # builtin wrapped in classmethod
+ @classmethod
+ def __add__(self, rhs):
+ print('add', rhs)
+
+c = C()
+
+c.f(0)
+c.g(0)
+c - 1
+c + 2
diff --git a/tests/basics/closure-defargs.py b/tests/basics/closure-defargs.py
index ff8ada0414..96b1092659 100644
--- a/tests/basics/closure-defargs.py
+++ b/tests/basics/closure-defargs.py
@@ -1,8 +1,11 @@
+# test closure with default args
+
def f():
a = 1
def bar(b = 10, c = 20):
print(a + b + c)
bar()
+ bar(2)
+ bar(2, 3)
print(f())
-