X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=tests%2Fbindings%2Fpython%2Fbt2%2Ftest_port.py;h=68640a78fe8bb5ced6341130b43c14ff91ea9cc2;hb=5c61fb9d5be835a0efc87f7764117c4d05e0ae5a;hp=2d203784624418925db5d55ff6d2f79ee0409304;hpb=894a8df566ca63e6b53c831d245569d8598c5889;p=babeltrace.git diff --git a/tests/bindings/python/bt2/test_port.py b/tests/bindings/python/bt2/test_port.py index 2d203784..68640a78 100644 --- a/tests/bindings/python/bt2/test_port.py +++ b/tests/bindings/python/bt2/test_port.py @@ -1,5 +1,24 @@ +# +# Copyright (C) 2019 EfficiOS Inc. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; only version 2 +# of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# + import unittest import bt2 +from bt2 import port as bt2_port class PortTestCase(unittest.TestCase): @@ -13,27 +32,22 @@ class PortTestCase(unittest.TestCase): return graph.add_component(comp_cls, name) def test_src_add_output_port(self): - class MyIter(bt2._UserMessageIterator): - def __next__(self): - raise bt2.Stop - - class MySource(bt2._UserSourceComponent, - message_iterator_class=MyIter): - def __init__(comp_self, params): + class MySource( + bt2._UserSourceComponent, message_iterator_class=bt2._UserMessageIterator + ): + def __init__(comp_self, config, params, obj): port = comp_self._add_output_port('out') self.assertEqual(port.name, 'out') comp = self._create_comp(MySource) self.assertEqual(len(comp.output_ports), 1) + self.assertIs(type(comp.output_ports['out']), bt2_port._OutputPortConst) def test_flt_add_output_port(self): - class MyIter(bt2._UserMessageIterator): - def __next__(self): - raise bt2.Stop - - class MyFilter(bt2._UserFilterComponent, - message_iterator_class=MyIter): - def __init__(comp_self, params): + class MyFilter( + bt2._UserFilterComponent, message_iterator_class=bt2._UserMessageIterator + ): + def __init__(comp_self, config, params, obj): port = comp_self._add_output_port('out') self.assertEqual(port.name, 'out') @@ -41,39 +55,34 @@ class PortTestCase(unittest.TestCase): self.assertEqual(len(comp.output_ports), 1) def test_flt_add_input_port(self): - class MyIter(bt2._UserMessageIterator): - def __next__(self): - raise bt2.Stop - - class MyFilter(bt2._UserFilterComponent, - message_iterator_class=MyIter): - def __init__(comp_self, params): + class MyFilter( + bt2._UserFilterComponent, message_iterator_class=bt2._UserMessageIterator + ): + def __init__(comp_self, config, params, obj): port = comp_self._add_input_port('in') self.assertEqual(port.name, 'in') comp = self._create_comp(MyFilter) self.assertEqual(len(comp.input_ports), 1) + self.assertIs(type(comp.input_ports['in']), bt2_port._InputPortConst) def test_sink_add_input_port(self): class MySink(bt2._UserSinkComponent): - def __init__(comp_self, params): + def __init__(comp_self, config, params, obj): port = comp_self._add_input_port('in') self.assertEqual(port.name, 'in') - def _consume(self): + def _user_consume(self): pass comp = self._create_comp(MySink) self.assertEqual(len(comp.input_ports), 1) def test_user_src_output_ports_getitem(self): - class MyIter(bt2._UserMessageIterator): - def __next__(self): - raise bt2.Stop - - class MySource(bt2._UserSourceComponent, - message_iterator_class=MyIter): - def __init__(comp_self, params): + class MySource( + bt2._UserSourceComponent, message_iterator_class=bt2._UserMessageIterator + ): + def __init__(comp_self, config, params, obj): port1 = comp_self._add_output_port('clear') port2 = comp_self._add_output_port('print') port3 = comp_self._add_output_port('insert') @@ -84,13 +93,10 @@ class PortTestCase(unittest.TestCase): self._create_comp(MySource) def test_user_flt_output_ports_getitem(self): - class MyIter(bt2._UserMessageIterator): - def __next__(self): - raise bt2.Stop - - class MyFilter(bt2._UserFilterComponent, - message_iterator_class=MyIter): - def __init__(comp_self, params): + class MyFilter( + bt2._UserFilterComponent, message_iterator_class=bt2._UserMessageIterator + ): + def __init__(comp_self, config, params, obj): port1 = comp_self._add_output_port('clear') port2 = comp_self._add_output_port('print') port3 = comp_self._add_output_port('insert') @@ -101,13 +107,10 @@ class PortTestCase(unittest.TestCase): self._create_comp(MyFilter) def test_user_flt_input_ports_getitem(self): - class MyIter(bt2._UserMessageIterator): - def __next__(self): - raise bt2.Stop - - class MyFilter(bt2._UserFilterComponent, - message_iterator_class=MyIter): - def __init__(comp_self, params): + class MyFilter( + bt2._UserFilterComponent, message_iterator_class=bt2._UserMessageIterator + ): + def __init__(comp_self, config, params, obj): port1 = comp_self._add_input_port('clear') port2 = comp_self._add_input_port('print') port3 = comp_self._add_input_port('insert') @@ -119,7 +122,7 @@ class PortTestCase(unittest.TestCase): def test_user_sink_input_ports_getitem(self): class MySink(bt2._UserSinkComponent): - def __init__(comp_self, params): + def __init__(comp_self, config, params, obj): port1 = comp_self._add_input_port('clear') port2 = comp_self._add_input_port('print') port3 = comp_self._add_input_port('insert') @@ -127,19 +130,16 @@ class PortTestCase(unittest.TestCase): self.assertEqual(port2.addr, comp_self._input_ports['print'].addr) self.assertEqual(port1.addr, comp_self._input_ports['clear'].addr) - def _consume(self): + def _user_consume(self): pass self._create_comp(MySink) def test_user_src_output_ports_getitem_invalid_key(self): - class MyIter(bt2._UserMessageIterator): - def __next__(self): - raise bt2.Stop - - class MySource(bt2._UserSourceComponent, - message_iterator_class=MyIter): - def __init__(comp_self, params): + class MySource( + bt2._UserSourceComponent, message_iterator_class=bt2._UserMessageIterator + ): + def __init__(comp_self, config, params, obj): comp_self._add_output_port('clear') comp_self._add_output_port('print') comp_self._add_output_port('insert') @@ -150,13 +150,10 @@ class PortTestCase(unittest.TestCase): self._create_comp(MySource) def test_user_flt_output_ports_getitem_invalid_key(self): - class MyIter(bt2._UserMessageIterator): - def __next__(self): - raise bt2.Stop - - class MyFilter(bt2._UserFilterComponent, - message_iterator_class=MyIter): - def __init__(comp_self, params): + class MyFilter( + bt2._UserFilterComponent, message_iterator_class=bt2._UserMessageIterator + ): + def __init__(comp_self, config, params, obj): comp_self._add_output_port('clear') comp_self._add_output_port('print') comp_self._add_output_port('insert') @@ -167,13 +164,10 @@ class PortTestCase(unittest.TestCase): self._create_comp(MyFilter) def test_user_flt_input_ports_getitem_invalid_key(self): - class MyIter(bt2._UserMessageIterator): - def __next__(self): - raise bt2.Stop - - class MyFilter(bt2._UserFilterComponent, - message_iterator_class=MyIter): - def __init__(comp_self, params): + class MyFilter( + bt2._UserFilterComponent, message_iterator_class=bt2._UserMessageIterator + ): + def __init__(comp_self, config, params, obj): comp_self._add_input_port('clear') comp_self._add_input_port('print') comp_self._add_input_port('insert') @@ -185,7 +179,7 @@ class PortTestCase(unittest.TestCase): def test_user_sink_input_ports_getitem_invalid_key(self): class MySink(bt2._UserSinkComponent): - def __init__(comp_self, params): + def __init__(comp_self, config, params, obj): comp_self._add_input_port('clear') comp_self._add_input_port('print') comp_self._add_input_port('insert') @@ -193,19 +187,16 @@ class PortTestCase(unittest.TestCase): with self.assertRaises(KeyError): comp_self._input_ports['hello'] - def _consume(self): + def _user_consume(self): pass self._create_comp(MySink) def test_user_src_output_ports_len(self): - class MyIter(bt2._UserMessageIterator): - def __next__(self): - raise bt2.Stop - - class MySource(bt2._UserSourceComponent, - message_iterator_class=MyIter): - def __init__(comp_self, params): + class MySource( + bt2._UserSourceComponent, message_iterator_class=bt2._UserMessageIterator + ): + def __init__(comp_self, config, params, obj): comp_self._add_output_port('clear') comp_self._add_output_port('print') comp_self._add_output_port('insert') @@ -214,13 +205,10 @@ class PortTestCase(unittest.TestCase): self._create_comp(MySource) def test_user_flt_output_ports_len(self): - class MyIter(bt2._UserMessageIterator): - def __next__(self): - raise bt2.Stop - - class MyFilter(bt2._UserFilterComponent, - message_iterator_class=MyIter): - def __init__(comp_self, params): + class MyFilter( + bt2._UserFilterComponent, message_iterator_class=bt2._UserMessageIterator + ): + def __init__(comp_self, config, params, obj): comp_self._add_output_port('clear') comp_self._add_output_port('print') comp_self._add_output_port('insert') @@ -229,13 +217,10 @@ class PortTestCase(unittest.TestCase): self._create_comp(MyFilter) def test_user_flt_input_ports_len(self): - class MyIter(bt2._UserMessageIterator): - def __next__(self): - raise bt2.Stop - - class MyFilter(bt2._UserFilterComponent, - message_iterator_class=MyIter): - def __init__(comp_self, params): + class MyFilter( + bt2._UserFilterComponent, message_iterator_class=bt2._UserMessageIterator + ): + def __init__(comp_self, config, params, obj): comp_self._add_input_port('clear') comp_self._add_input_port('print') comp_self._add_input_port('insert') @@ -245,25 +230,22 @@ class PortTestCase(unittest.TestCase): def test_user_sink_input_ports_len(self): class MySink(bt2._UserSinkComponent): - def __init__(comp_self, params): + def __init__(comp_self, config, params, obj): comp_self._add_input_port('clear') comp_self._add_input_port('print') comp_self._add_input_port('insert') self.assertEqual(len(comp_self._input_ports), 3) - def _consume(self): + def _user_consume(self): pass self._create_comp(MySink) def test_user_src_output_ports_iter(self): - class MyIter(bt2._UserMessageIterator): - def __next__(self): - raise bt2.Stop - - class MySource(bt2._UserSourceComponent, - message_iterator_class=MyIter): - def __init__(comp_self, params): + class MySource( + bt2._UserSourceComponent, message_iterator_class=bt2._UserMessageIterator + ): + def __init__(comp_self, config, params, obj): port1 = comp_self._add_output_port('clear') port2 = comp_self._add_output_port('print') port3 = comp_self._add_output_port('insert') @@ -282,13 +264,10 @@ class PortTestCase(unittest.TestCase): self._create_comp(MySource) def test_user_flt_output_ports_iter(self): - class MyIter(bt2._UserMessageIterator): - def __next__(self): - raise bt2.Stop - - class MyFilter(bt2._UserFilterComponent, - message_iterator_class=MyIter): - def __init__(comp_self, params): + class MyFilter( + bt2._UserFilterComponent, message_iterator_class=bt2._UserMessageIterator + ): + def __init__(comp_self, config, params, obj): port1 = comp_self._add_output_port('clear') port2 = comp_self._add_output_port('print') port3 = comp_self._add_output_port('insert') @@ -307,13 +286,10 @@ class PortTestCase(unittest.TestCase): self._create_comp(MyFilter) def test_user_flt_input_ports_iter(self): - class MyIter(bt2._UserMessageIterator): - def __next__(self): - raise bt2.Stop - - class MyFilter(bt2._UserFilterComponent, - message_iterator_class=MyIter): - def __init__(comp_self, params): + class MyFilter( + bt2._UserFilterComponent, message_iterator_class=bt2._UserMessageIterator + ): + def __init__(comp_self, config, params, obj): port1 = comp_self._add_input_port('clear') port2 = comp_self._add_input_port('print') port3 = comp_self._add_input_port('insert') @@ -333,7 +309,7 @@ class PortTestCase(unittest.TestCase): def test_user_sink_input_ports_iter(self): class MySink(bt2._UserSinkComponent): - def __init__(comp_self, params): + def __init__(comp_self, config, params, obj): port1 = comp_self._add_input_port('clear') port2 = comp_self._add_input_port('print') port3 = comp_self._add_input_port('insert') @@ -349,23 +325,20 @@ class PortTestCase(unittest.TestCase): self.assertEqual(ports[2][0], 'insert') self.assertEqual(ports[2][1].addr, port3.addr) - def _consume(self): + def _user_consume(self): pass self._create_comp(MySink) def test_gen_src_output_ports_getitem(self): - class MyIter(bt2._UserMessageIterator): - def __next__(self): - raise bt2.Stop - port1 = None port2 = None port3 = None - class MySource(bt2._UserSourceComponent, - message_iterator_class=MyIter): - def __init__(comp_self, params): + class MySource( + bt2._UserSourceComponent, message_iterator_class=bt2._UserMessageIterator + ): + def __init__(comp_self, config, params, obj): nonlocal port1, port2, port3 port1 = comp_self._add_output_port('clear') port2 = comp_self._add_output_port('print') @@ -380,17 +353,14 @@ class PortTestCase(unittest.TestCase): del port3 def test_gen_flt_output_ports_getitem(self): - class MyIter(bt2._UserMessageIterator): - def __next__(self): - raise bt2.Stop - port1 = None port2 = None port3 = None - class MyFilter(bt2._UserFilterComponent, - message_iterator_class=MyIter): - def __init__(comp_self, params): + class MyFilter( + bt2._UserFilterComponent, message_iterator_class=bt2._UserMessageIterator + ): + def __init__(comp_self, config, params, obj): nonlocal port1, port2, port3 port1 = comp_self._add_output_port('clear') port2 = comp_self._add_output_port('print') @@ -405,17 +375,14 @@ class PortTestCase(unittest.TestCase): del port3 def test_gen_flt_input_ports_getitem(self): - class MyIter(bt2._UserMessageIterator): - def __next__(self): - raise bt2.Stop - port1 = None port2 = None port3 = None - class MyFilter(bt2._UserFilterComponent, - message_iterator_class=MyIter): - def __init__(comp_self, params): + class MyFilter( + bt2._UserFilterComponent, message_iterator_class=bt2._UserMessageIterator + ): + def __init__(comp_self, config, params, obj): nonlocal port1, port2, port3 port1 = comp_self._add_input_port('clear') port2 = comp_self._add_input_port('print') @@ -435,13 +402,13 @@ class PortTestCase(unittest.TestCase): port3 = None class MySink(bt2._UserSinkComponent): - def __init__(comp_self, params): + def __init__(comp_self, config, params, obj): nonlocal port1, port2, port3 port1 = comp_self._add_input_port('clear') port2 = comp_self._add_input_port('print') port3 = comp_self._add_input_port('insert') - def _consume(self): + def _user_consume(self): pass comp = self._create_comp(MySink) @@ -453,13 +420,10 @@ class PortTestCase(unittest.TestCase): del port3 def test_gen_src_output_ports_getitem_invalid_key(self): - class MyIter(bt2._UserMessageIterator): - def __next__(self): - raise bt2.Stop - - class MySource(bt2._UserSourceComponent, - message_iterator_class=MyIter): - def __init__(comp_self, params): + class MySource( + bt2._UserSourceComponent, message_iterator_class=bt2._UserMessageIterator + ): + def __init__(comp_self, config, params, obj): comp_self._add_output_port('clear') comp_self._add_output_port('print') comp_self._add_output_port('insert') @@ -470,13 +434,10 @@ class PortTestCase(unittest.TestCase): comp.output_ports['hello'] def test_gen_flt_output_ports_getitem_invalid_key(self): - class MyIter(bt2._UserMessageIterator): - def __next__(self): - raise bt2.Stop - - class MyFilter(bt2._UserFilterComponent, - message_iterator_class=MyIter): - def __init__(comp_self, params): + class MyFilter( + bt2._UserFilterComponent, message_iterator_class=bt2._UserMessageIterator + ): + def __init__(comp_self, config, params, obj): comp_self._add_output_port('clear') comp_self._add_output_port('print') comp_self._add_output_port('insert') @@ -487,13 +448,10 @@ class PortTestCase(unittest.TestCase): comp.output_ports['hello'] def test_gen_flt_input_ports_getitem_invalid_key(self): - class MyIter(bt2._UserMessageIterator): - def __next__(self): - raise bt2.Stop - - class MyFilter(bt2._UserFilterComponent, - message_iterator_class=MyIter): - def __init__(comp_self, params): + class MyFilter( + bt2._UserFilterComponent, message_iterator_class=bt2._UserMessageIterator + ): + def __init__(comp_self, config, params, obj): comp_self._add_input_port('clear') comp_self._add_input_port('print') comp_self._add_input_port('insert') @@ -505,7 +463,7 @@ class PortTestCase(unittest.TestCase): def test_gen_sink_input_ports_getitem_invalid_key(self): class MySink(bt2._UserSinkComponent): - def __init__(comp_self, params): + def __init__(comp_self, config, params, obj): comp_self._add_input_port('clear') comp_self._add_input_port('print') comp_self._add_input_port('insert') @@ -513,7 +471,7 @@ class PortTestCase(unittest.TestCase): with self.assertRaises(KeyError): comp_self._input_ports['hello'] - def _consume(self): + def _user_consume(self): pass comp = self._create_comp(MySink) @@ -522,13 +480,10 @@ class PortTestCase(unittest.TestCase): comp.input_ports['hello'] def test_gen_src_output_ports_len(self): - class MyIter(bt2._UserMessageIterator): - def __next__(self): - raise bt2.Stop - - class MySource(bt2._UserSourceComponent, - message_iterator_class=MyIter): - def __init__(comp_self, params): + class MySource( + bt2._UserSourceComponent, message_iterator_class=bt2._UserMessageIterator + ): + def __init__(comp_self, config, params, obj): comp_self._add_output_port('clear') comp_self._add_output_port('print') comp_self._add_output_port('insert') @@ -537,13 +492,10 @@ class PortTestCase(unittest.TestCase): self.assertEqual(len(comp.output_ports), 3) def test_gen_flt_output_ports_len(self): - class MyIter(bt2._UserMessageIterator): - def __next__(self): - raise bt2.Stop - - class MyFilter(bt2._UserFilterComponent, - message_iterator_class=MyIter): - def __init__(comp_self, params): + class MyFilter( + bt2._UserFilterComponent, message_iterator_class=bt2._UserMessageIterator + ): + def __init__(comp_self, config, params, obj): comp_self._add_output_port('clear') comp_self._add_output_port('print') comp_self._add_output_port('insert') @@ -552,13 +504,10 @@ class PortTestCase(unittest.TestCase): self.assertEqual(len(comp.output_ports), 3) def test_gen_flt_input_ports_len(self): - class MyIter(bt2._UserMessageIterator): - def __next__(self): - raise bt2.Stop - - class MyFilter(bt2._UserFilterComponent, - message_iterator_class=MyIter): - def __init__(comp_self, params): + class MyFilter( + bt2._UserFilterComponent, message_iterator_class=bt2._UserMessageIterator + ): + def __init__(comp_self, config, params, obj): comp_self._add_input_port('clear') comp_self._add_input_port('print') comp_self._add_input_port('insert') @@ -568,29 +517,26 @@ class PortTestCase(unittest.TestCase): def test_gen_sink_input_ports_len(self): class MySink(bt2._UserSinkComponent): - def __init__(comp_self, params): + def __init__(comp_self, config, params, obj): comp_self._add_input_port('clear') comp_self._add_input_port('print') comp_self._add_input_port('insert') - def _consume(self): + def _user_consume(self): pass comp = self._create_comp(MySink) self.assertEqual(len(comp.input_ports), 3) def test_gen_src_output_ports_iter(self): - class MyIter(bt2._UserMessageIterator): - def __next__(self): - raise bt2.Stop - port1 = None port2 = None port3 = None - class MySource(bt2._UserSourceComponent, - message_iterator_class=MyIter): - def __init__(comp_self, params): + class MySource( + bt2._UserSourceComponent, message_iterator_class=bt2._UserMessageIterator + ): + def __init__(comp_self, config, params, obj): nonlocal port1, port2, port3 port1 = comp_self._add_output_port('clear') port2 = comp_self._add_output_port('print') @@ -613,17 +559,14 @@ class PortTestCase(unittest.TestCase): del port3 def test_gen_flt_output_ports_iter(self): - class MyIter(bt2._UserMessageIterator): - def __next__(self): - raise bt2.Stop - port1 = None port2 = None port3 = None - class MyFilter(bt2._UserFilterComponent, - message_iterator_class=MyIter): - def __init__(comp_self, params): + class MyFilter( + bt2._UserFilterComponent, message_iterator_class=bt2._UserMessageIterator + ): + def __init__(comp_self, config, params, obj): nonlocal port1, port2, port3 port1 = comp_self._add_output_port('clear') port2 = comp_self._add_output_port('print') @@ -646,17 +589,14 @@ class PortTestCase(unittest.TestCase): del port3 def test_gen_flt_input_ports_iter(self): - class MyIter(bt2._UserMessageIterator): - def __next__(self): - raise bt2.Stop - port1 = None port2 = None port3 = None - class MyFilter(bt2._UserFilterComponent, - message_iterator_class=MyIter): - def __init__(comp_self, params): + class MyFilter( + bt2._UserFilterComponent, message_iterator_class=bt2._UserMessageIterator + ): + def __init__(comp_self, config, params, obj): nonlocal port1, port2, port3 port1 = comp_self._add_input_port('clear') port2 = comp_self._add_input_port('print') @@ -684,13 +624,13 @@ class PortTestCase(unittest.TestCase): port3 = None class MySink(bt2._UserSinkComponent): - def __init__(comp_self, params): + def __init__(comp_self, config, params, obj): nonlocal port1, port2, port3 port1 = comp_self._add_input_port('clear') port2 = comp_self._add_input_port('print') port3 = comp_self._add_input_port('insert') - def _consume(self): + def _user_consume(self): pass comp = self._create_comp(MySink) @@ -711,10 +651,10 @@ class PortTestCase(unittest.TestCase): def test_name(self): class MySink(bt2._UserSinkComponent): - def __init__(comp_self, params): + def __init__(comp_self, config, params, obj): comp_self._add_input_port('clear') - def _consume(self): + def _user_consume(self): pass comp = self._create_comp(MySink) @@ -722,10 +662,10 @@ class PortTestCase(unittest.TestCase): def test_connection_none(self): class MySink(bt2._UserSinkComponent): - def __init__(comp_self, params): + def __init__(comp_self, config, params, obj): comp_self._add_input_port('clear') - def _consume(self): + def _user_consume(self): pass comp = self._create_comp(MySink) @@ -733,10 +673,10 @@ class PortTestCase(unittest.TestCase): def test_is_connected_false(self): class MySink(bt2._UserSinkComponent): - def __init__(comp_self, params): + def __init__(comp_self, config, params, obj): comp_self._add_input_port('clear') - def _consume(self): + def _user_consume(self): pass comp = self._create_comp(MySink) @@ -744,33 +684,96 @@ class PortTestCase(unittest.TestCase): def test_self_name(self): class MySink(bt2._UserSinkComponent): - def __init__(comp_self, params): + def __init__(comp_self, config, params, obj): port = comp_self._add_input_port('clear') self.assertEqual(port.name, 'clear') - def _consume(self): + def _user_consume(self): pass self._create_comp(MySink) def test_self_connection_none(self): class MySink(bt2._UserSinkComponent): - def __init__(comp_self, params): + def __init__(comp_self, config, params, obj): port = comp_self._add_input_port('clear') self.assertIsNone(port.connection) - def _consume(self): + def _user_consume(self): pass self._create_comp(MySink) def test_self_is_connected_false(self): class MySink(bt2._UserSinkComponent): - def __init__(comp_self, params): + def __init__(comp_self, config, params, obj): port = comp_self._add_input_port('clear') self.assertFalse(port.is_connected) - def _consume(self): + def _user_consume(self): + pass + + self._create_comp(MySink) + + def test_source_self_port_user_data(self): + class MySource( + bt2._UserFilterComponent, message_iterator_class=bt2._UserMessageIterator + ): + def __init__(comp_self, config, params, obj): + nonlocal user_datas + + p = comp_self._add_output_port('port1') + user_datas.append(p.user_data) + p = comp_self._add_output_port('port2', 2) + user_datas.append(p.user_data) + + user_datas = [] + + self._create_comp(MySource) + self.assertEqual(user_datas, [None, 2]) + + def test_filter_self_port_user_data(self): + class MyFilter( + bt2._UserFilterComponent, message_iterator_class=bt2._UserMessageIterator + ): + def __init__(comp_self, config, params, obj): + nonlocal user_datas + + p = comp_self._add_output_port('port1') + user_datas.append(p.user_data) + p = comp_self._add_output_port('port2', 'user data string') + user_datas.append(p.user_data) + + p = comp_self._add_input_port('port3') + user_datas.append(p.user_data) + p = comp_self._add_input_port('port4', user_data={'user data': 'dict'}) + user_datas.append(p.user_data) + + user_datas = [] + + self._create_comp(MyFilter) + self.assertEqual( + user_datas, [None, 'user data string', None, {'user data': 'dict'}] + ) + + def test_sink_self_port_user_data(self): + class MySink(bt2._UserSinkComponent): + def __init__(comp_self, config, params, obj): + nonlocal user_datas + + p = comp_self._add_input_port('port1') + user_datas.append(p.user_data) + p = comp_self._add_input_port('port2', set()) + user_datas.append(p.user_data) + + def _user_consume(self): pass + user_datas = [] + self._create_comp(MySink) + self.assertEqual(user_datas, [None, set()]) + + +if __name__ == '__main__': + unittest.main()