summaryrefslogtreecommitdiff
path: root/Examples/test-suite/python/director_nested_runme.py
blob: f3d973630fdabab133a254de7dcae16812c926c6 (plain)
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
from director_nested import *


class A(FooBar_int):

    def do_step(self):
        return "A::do_step;"

    def get_value(self):
        return "A::get_value"

    pass


a = A()
if a.step() != "Bar::step;Foo::advance;Bar::do_advance;A::do_step;":
    raise RuntimeError, "Bad A virtual resolution"


class B(FooBar_int):

    def do_advance(self):
        return "B::do_advance;" + self.do_step()

    def do_step(self):
        return "B::do_step;"

    def get_value(self):
        return 1

    pass


b = B()

if b.step() != "Bar::step;Foo::advance;B::do_advance;B::do_step;":
    raise RuntimeError, "Bad B virtual resolution"


class C(FooBar_int):

    def do_advance(self):
        return "C::do_advance;" + FooBar_int.do_advance(self)

    def do_step(self):
        return "C::do_step;"

    def get_value(self):
        return 2

    def get_name(self):
        return FooBar_int.get_name(self) + " hello"

    pass

cc = C()
c = FooBar_int_get_self(cc)
c.advance()

if c.get_name() != "FooBar::get_name hello":
    raise RuntimeError

if c.name() != "FooBar::get_name hello":
    raise RuntimeError