summaryrefslogtreecommitdiff
path: root/tests/basics/fun_calldblstar4.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/basics/fun_calldblstar4.py')
-rw-r--r--tests/basics/fun_calldblstar4.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/basics/fun_calldblstar4.py b/tests/basics/fun_calldblstar4.py
new file mode 100644
index 000000000..acb332a8c
--- /dev/null
+++ b/tests/basics/fun_calldblstar4.py
@@ -0,0 +1,33 @@
+# test calling a function with multiple **args
+
+
+def f(a, b=None, c=None):
+ print(a, b, c)
+
+
+f(**{"a": 1}, **{"b": 2})
+f(**{"a": 1}, **{"b": 2}, c=3)
+f(**{"a": 1}, b=2, **{"c": 3})
+
+try:
+ f(1, **{"b": 2}, **{"b": 3})
+except TypeError:
+ print("TypeError")
+
+# test calling a method with multiple **args
+
+
+class A:
+ def f(self, a, b=None, c=None):
+ print(a, b, c)
+
+
+a = A()
+a.f(**{"a": 1}, **{"b": 2})
+a.f(**{"a": 1}, **{"b": 2}, c=3)
+a.f(**{"a": 1}, b=2, **{"c": 3})
+
+try:
+ a.f(1, **{"b": 2}, **{"b": 3})
+except TypeError:
+ print("TypeError")