File: test_decorators.py

package info (click to toggle)
python-trame 3.12.0-1
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 101,620 kB
  • sloc: python: 13,515; sh: 183; javascript: 93; makefile: 7
file content (44 lines) | stat: -rw-r--r-- 1,024 bytes parent folder | download | duplicates (2)
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
def test_TrameApp():
    import asyncio

    from trame.app import get_server
    from trame.decorators import TrameApp, change, controller

    @TrameApp()
    class A:
        def __init__(self, server, e):
            """doc string"""
            self.server = server
            self.e = e

        @change("c")
        def c_changed(self, c, **kwargs):
            self.c = c

    class B(A):
        def __init__(self, server, e):
            super().__init__(server, e)

        @change("d")
        def d_changed(self, d, **kwargs):
            self.d = d

        @controller.set("on_server_ready")
        def on_server_ready(self, **kwargs):
            assert self.c == 10
            assert self.d == 15
            asyncio.create_task(self.server.stop())

    server = get_server()

    a = A(server, 1)
    assert type(a) is A
    assert a.__init__.__doc__ is not None

    b = B(server, 2)
    assert type(b) is B
    assert b.e == 2

    b.server.state.c = 10
    b.server.state.d = 15
    b.server.start()