File: kwargs_feature_runme.py

package info (click to toggle)
swig 4.1.0-0.2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 47,992 kB
  • sloc: cpp: 50,555; ansic: 27,840; java: 15,366; python: 11,221; cs: 8,852; ruby: 6,307; yacc: 6,290; makefile: 5,702; sh: 5,492; perl: 3,818; php: 3,046; ml: 2,094; lisp: 1,756; javascript: 1,751; tcl: 1,499; xml: 115
file content (142 lines) | stat: -rw-r--r-- 2,474 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
from kwargs_feature import *


class MyFoo(Foo):

    def __init__(self, a, b=0):
        Foo.__init__(self, a, b)


# Simple class
f1 = MyFoo(2)

f = Foo(b=2, a=1)

if f.foo(b=1, a=2) != 3:
    raise RuntimeError

if Foo.statfoo(b=2) != 3:
    raise RuntimeError

if Foo.statfoo_onearg(x=4) != 8:
    raise RuntimeError

if f.efoo(b=2) != 3:
    raise RuntimeError

if Foo.sfoo(b=2) != 3:
    raise RuntimeError


# Templated class
b = BarInt(b=2, a=1)

if b.bar(b=1, a=2) != 3:
    raise RuntimeError

if BarInt.statbar(b=2) != 3:
    raise RuntimeError

if b.ebar(b=2) != 3:
    raise RuntimeError

if BarInt.sbar(b=2) != 3:
    raise RuntimeError


# Functions
if templatedfunction(b=2) != 3:
    raise RuntimeError

if foo_fn(a=1, b=2) != 3:
    raise RuntimeError

if foo_fn(b=2) != 3:
    raise RuntimeError


# Functions with keywords

if foo_kw(_from=2) != 4:
    raise RuntimeError

if foo_nu(_from=2, arg2=3) != 2:
    raise RuntimeError

if foo_mm(min=2) != 4:
    raise RuntimeError

if foo_mm(max=3) != 4:
    raise RuntimeError

# Default args with references

if rfoo(n=123) != 120:
    raise RuntimeError

if rfoo(x=10) != -10:
    raise RuntimeError

if rfoo(n=11, x=22) != -11:
    raise RuntimeError

if rfoo(x=11, n=22) != 11:
    raise RuntimeError

# Extended constructors
e = Extending0()
e = Extending1(one=1)
e = Extending1(1)
e = Extending2(1, "two")
e = Extending2(1, two="two")
e = Extending2(two="two", one=1)
e = ExtendingOptArgs1()
e = ExtendingOptArgs1(1)
e = ExtendingOptArgs2(one=1)
e = ExtendingOptArgs2()
e = ExtendingOptArgs2(one=1)
e = ExtendingOptArgs2(two="two")
e = ExtendingOptArgs2(two="two", one=1)

# Invalid kwargs test
h = Hello()
try:
    h = Hello(nonexistent=10)
    raise RuntimeError("missed exception")
except TypeError as e:
    pass

f = Foo(1)
f = Foo(a=1)
try:
    f = Foo(nonexistent=10)
    raise RuntimeError("missed exception")
except TypeError as e:
    pass

try:
    f = Foo(a=1, nonexistent=10)
    raise RuntimeError("missed exception")
except TypeError as e:
    pass

try:
    f = Foo(1, nonexistent=10)
    raise RuntimeError("missed exception")
except TypeError as e:
    pass

# Varargs
f = VarargConstructor(fmt="Ciao")
f.vararg_method(fmt="Bonjour")
try:
    f = VarargConstructor(nonexistent="Ciao")
    raise RuntimeError("missed exception")
except TypeError as e:
    pass

try:
    f.vararg_method(nonexistent="Bonjour")
    raise RuntimeError("missed exception")
except TypeError as e:
    pass