cpp-common/bt2c/fmt.hpp: use `wise_enum::string_type` in `EnableIfIsWiseEnum` definition
[babeltrace.git] / tests / bindings / python / bt2 / test_connection.py
1 # SPDX-License-Identifier: GPL-2.0-only
2 #
3 # Copyright (C) 2019 EfficiOS Inc.
4 #
5
6 import unittest
7
8 import bt2
9 from bt2 import port as bt2_port
10 from bt2 import connection as bt2_connection
11
12
13 class ConnectionTestCase(unittest.TestCase):
14 def test_create(self):
15 class MySource(
16 bt2._UserSourceComponent, message_iterator_class=bt2._UserMessageIterator
17 ):
18 def __init__(self, config, params, obj):
19 self._add_output_port("out")
20
21 class MySink(bt2._UserSinkComponent):
22 def __init__(self, config, params, obj):
23 self._add_input_port("in")
24
25 def _user_consume(self):
26 raise bt2.Stop
27
28 graph = bt2.Graph()
29 src = graph.add_component(MySource, "src")
30 sink = graph.add_component(MySink, "sink")
31 conn = graph.connect_ports(src.output_ports["out"], sink.input_ports["in"])
32 self.assertIs(type(conn), bt2_connection._ConnectionConst)
33
34 def test_downstream_port(self):
35 class MySource(
36 bt2._UserSourceComponent, message_iterator_class=bt2._UserMessageIterator
37 ):
38 def __init__(self, config, params, obj):
39 self._add_output_port("out")
40
41 class MySink(bt2._UserSinkComponent):
42 def __init__(self, config, params, obj):
43 self._add_input_port("in")
44
45 def _user_consume(self):
46 raise bt2.Stop
47
48 graph = bt2.Graph()
49 src = graph.add_component(MySource, "src")
50 sink = graph.add_component(MySink, "sink")
51 conn = graph.connect_ports(src.output_ports["out"], sink.input_ports["in"])
52 self.assertEqual(conn.downstream_port.addr, sink.input_ports["in"].addr)
53 self.assertIs(type(conn), bt2_connection._ConnectionConst)
54 self.assertIs(type(conn.downstream_port), bt2_port._InputPortConst)
55
56 def test_upstream_port(self):
57 class MySource(
58 bt2._UserSourceComponent, message_iterator_class=bt2._UserMessageIterator
59 ):
60 def __init__(self, config, params, obj):
61 self._add_output_port("out")
62
63 class MySink(bt2._UserSinkComponent):
64 def __init__(self, config, params, obj):
65 self._add_input_port("in")
66
67 def _user_consume(self):
68 raise bt2.Stop
69
70 graph = bt2.Graph()
71 src = graph.add_component(MySource, "src")
72 sink = graph.add_component(MySink, "sink")
73 conn = graph.connect_ports(src.output_ports["out"], sink.input_ports["in"])
74 self.assertEqual(conn.upstream_port.addr, src.output_ports["out"].addr)
75 self.assertIs(type(conn.upstream_port), bt2_port._OutputPortConst)
76
77
78 if __name__ == "__main__":
79 unittest.main()
This page took 0.031629 seconds and 5 git commands to generate.