summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Behnel <stefan_ml@behnel.de>2020-01-08 09:17:36 +0100
committerStefan Behnel <stefan_ml@behnel.de>2020-01-08 09:17:36 +0100
commit035850127868bbd87390eb143b1eea64c5fa3c80 (patch)
treebf97fabbf2fff63ba0fda9c41e3abdbc0fa66ab2
parent3dc2b9dfc23638fbef2558d619709b5235d5df08 (diff)
downloadcython-gh2983_lambda_sig.tar.gz
GH-2983: Add failing tests for "Signature.from_callable(lambda)".gh2983_lambda_sig
-rw-r--r--tests/run/py34_signature.pyx56
1 files changed, 56 insertions, 0 deletions
diff --git a/tests/run/py34_signature.pyx b/tests/run/py34_signature.pyx
index 6bfaec677..93756b749 100644
--- a/tests/run/py34_signature.pyx
+++ b/tests/run/py34_signature.pyx
@@ -16,81 +16,137 @@ def signatures_match(f1, f2):
return sig(f1), sig(f2)
+lb = lambda a, b, c: None
+
def b(a, b, c):
"""
>>> def py_b(a, b, c): pass
>>> signatures_match(b, py_b)
+
+ >>> py_lb = lambda a, b, c: None
+ >>> signatures_match(lb, py_lb)
"""
+lc = lambda a, b, c=1: None
+
def c(a, b, c=1):
"""
>>> def py_c(a, b, c=1): pass
>>> signatures_match(c, py_c)
+
+ >>> py_lc = lambda a, b, c=1: None
+ >>> signatures_match(lc, py_lc)
"""
+ld = lambda a, b, *, c = 88: None
+
def d(a, b, *, c = 88):
"""
>>> def py_d(a, b, *, c = 88): pass
>>> signatures_match(d, py_d)
+
+
+ >>> py_ld = lambda a, b, *, c = 88: None
+ >>> signatures_match(ld, py_ld)
"""
+le = lambda a, b, c = 88, **kwds: None
+
def e(a, b, c = 88, **kwds):
"""
>>> def py_e(a, b, c = 88, **kwds): pass
>>> signatures_match(e, py_e)
+
+ >>> py_le = lambda a, b, c = 88, **kwds: None
+ >>> signatures_match(le, py_le)
"""
+lf = lambda a, b, *, c, d = 42: None
+
def f(a, b, *, c, d = 42):
"""
>>> def py_f(a, b, *, c, d = 42): pass
>>> signatures_match(f, py_f)
+
+ >>> py_lf = lambda a, b, *, c, d = 42: None
+ >>> signatures_match(lf, py_lf)
"""
+lg = lambda a, b, *, c, d = 42, e = 17, f, **kwds: None
+
def g(a, b, *, c, d = 42, e = 17, f, **kwds):
"""
>>> def py_g(a, b, *, c, d = 42, e = 17, f, **kwds): pass
>>> signatures_match(g, py_g)
+
+ >>> py_lg = lambda a, b, *, c, d = 42, e = 17, f, **kwds: None
+ >>> signatures_match(lg, py_lg)
"""
+lh = lambda a, b, *args, c, d = 42, e = 17, f, **kwds: None
+
def h(a, b, *args, c, d = 42, e = 17, f, **kwds):
"""
>>> def py_h(a, b, *args, c, d = 42, e = 17, f, **kwds): pass
>>> signatures_match(h, py_h)
+
+ >>> py_lh = lambda a, b, *args, c, d = 42, e = 17, f, **kwds: None
+ >>> signatures_match(lh, py_lh)
"""
+lk = lambda a, b, c=1, *args, d = 42, e = 17, f, **kwds: None
+
def k(a, b, c=1, *args, d = 42, e = 17, f, **kwds):
"""
>>> def py_k(a, b, c=1, *args, d = 42, e = 17, f, **kwds): pass
>>> signatures_match(k, py_k)
+
+ >>> py_lk = lambda a, b, c=1, *args, d = 42, e = 17, f, **kwds: None
+ >>> signatures_match(lk, py_lk)
"""
+ll = lambda *, a, b, c = 88: None
+
def l(*, a, b, c = 88):
"""
>>> def py_l(*, a, b, c = 88): pass
>>> signatures_match(l, py_l)
+
+ >>> py_ll = lambda *, a, b, c = 88: None
+ >>> signatures_match(ll, py_ll)
"""
+lm = lambda a, *, b, c = 88: None
+
def m(a, *, b, c = 88):
"""
>>> def py_m(a, *, b, c = 88): pass
>>> signatures_match(m, py_m)
+
+ >>> py_lm = lambda a, *, b, c = 88: None
+ >>> signatures_match(lm, py_lm)
"""
a, b, c = b, c, a
+ln = lambda a, *, b, c = 88: None
+
def n(a, *, b, c = 88):
"""
>>> def py_n(a, *, b, c = 88): pass
>>> signatures_match(n, py_n)
+
+ >>> py_ln = lambda a, *, b, c = 88: None
+ >>> signatures_match(ln, py_ln)
"""