| 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 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 |