-from bt2 import values
+#
+# 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 copy
import bt2
+from bt2 import port as bt2_port
-@unittest.skip("this is broken")
class PortTestCase(unittest.TestCase):
@staticmethod
def _create_comp(comp_cls, name=None):
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=MyIter):
+ def __init__(comp_self, 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=MyIter):
+ def __init__(comp_self, params, obj):
port = comp_self._add_output_port('out')
self.assertEqual(port.name, 'out')
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=MyIter):
+ def __init__(comp_self, 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, 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)
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=MyIter):
+ def __init__(comp_self, params, obj):
port1 = comp_self._add_output_port('clear')
port2 = comp_self._add_output_port('print')
port3 = comp_self._add_output_port('insert')
self.assertEqual(port2.addr, comp_self._output_ports['print'].addr)
self.assertEqual(port1.addr, comp_self._output_ports['clear'].addr)
- comp = self._create_comp(MySource)
+ 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=MyIter):
+ def __init__(comp_self, params, obj):
port1 = comp_self._add_output_port('clear')
port2 = comp_self._add_output_port('print')
port3 = comp_self._add_output_port('insert')
self.assertEqual(port2.addr, comp_self._output_ports['print'].addr)
self.assertEqual(port1.addr, comp_self._output_ports['clear'].addr)
- comp = self._create_comp(MyFilter)
+ 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=MyIter):
+ def __init__(comp_self, params, obj):
port1 = comp_self._add_input_port('clear')
port2 = comp_self._add_input_port('print')
port3 = comp_self._add_input_port('insert')
self.assertEqual(port2.addr, comp_self._input_ports['print'].addr)
self.assertEqual(port1.addr, comp_self._input_ports['clear'].addr)
- comp = self._create_comp(MyFilter)
+ self._create_comp(MyFilter)
def test_user_sink_input_ports_getitem(self):
class MySink(bt2._UserSinkComponent):
- def __init__(comp_self, params):
+ def __init__(comp_self, params, obj):
port1 = comp_self._add_input_port('clear')
port2 = comp_self._add_input_port('print')
port3 = comp_self._add_input_port('insert')
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
- comp = self._create_comp(MySink)
+ 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=MyIter):
+ def __init__(comp_self, params, obj):
comp_self._add_output_port('clear')
comp_self._add_output_port('print')
comp_self._add_output_port('insert')
with self.assertRaises(KeyError):
comp_self._output_ports['hello']
- comp = self._create_comp(MySource)
+ 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=MyIter):
+ def __init__(comp_self, params, obj):
comp_self._add_output_port('clear')
comp_self._add_output_port('print')
comp_self._add_output_port('insert')
with self.assertRaises(KeyError):
comp_self._output_ports['hello']
- comp = self._create_comp(MyFilter)
+ 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=MyIter):
+ def __init__(comp_self, params, obj):
comp_self._add_input_port('clear')
comp_self._add_input_port('print')
comp_self._add_input_port('insert')
with self.assertRaises(KeyError):
comp_self._input_ports['hello']
- comp = self._create_comp(MyFilter)
+ self._create_comp(MyFilter)
def test_user_sink_input_ports_getitem_invalid_key(self):
class MySink(bt2._UserSinkComponent):
- def __init__(comp_self, params):
+ def __init__(comp_self, params, obj):
comp_self._add_input_port('clear')
comp_self._add_input_port('print')
comp_self._add_input_port('insert')
with self.assertRaises(KeyError):
comp_self._input_ports['hello']
- def _consume(self):
+ def _user_consume(self):
pass
- comp = self._create_comp(MySink)
+ 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=MyIter):
+ def __init__(comp_self, params, obj):
comp_self._add_output_port('clear')
comp_self._add_output_port('print')
comp_self._add_output_port('insert')
self.assertEqual(len(comp_self._output_ports), 3)
- comp = self._create_comp(MySource)
+ 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=MyIter):
+ def __init__(comp_self, params, obj):
comp_self._add_output_port('clear')
comp_self._add_output_port('print')
comp_self._add_output_port('insert')
self.assertEqual(len(comp_self._output_ports), 3)
- comp = self._create_comp(MyFilter)
+ 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=MyIter):
+ def __init__(comp_self, 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)
- comp = self._create_comp(MyFilter)
+ self._create_comp(MyFilter)
def test_user_sink_input_ports_len(self):
class MySink(bt2._UserSinkComponent):
- def __init__(comp_self, params):
+ def __init__(comp_self, 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
- comp = self._create_comp(MySink)
+ 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=MyIter):
+ def __init__(comp_self, params, obj):
port1 = comp_self._add_output_port('clear')
port2 = comp_self._add_output_port('print')
port3 = comp_self._add_output_port('insert')
self.assertEqual(ports[2][0], 'insert')
self.assertEqual(ports[2][1].addr, port3.addr)
- comp = self._create_comp(MySource)
+ 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=MyIter):
+ def __init__(comp_self, params, obj):
port1 = comp_self._add_output_port('clear')
port2 = comp_self._add_output_port('print')
port3 = comp_self._add_output_port('insert')
self.assertEqual(ports[2][0], 'insert')
self.assertEqual(ports[2][1].addr, port3.addr)
- comp = self._create_comp(MyFilter)
+ 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=MyIter):
+ def __init__(comp_self, params, obj):
port1 = comp_self._add_input_port('clear')
port2 = comp_self._add_input_port('print')
port3 = comp_self._add_input_port('insert')
self.assertEqual(ports[2][0], 'insert')
self.assertEqual(ports[2][1].addr, port3.addr)
- comp = self._create_comp(MyFilter)
+ self._create_comp(MyFilter)
def test_user_sink_input_ports_iter(self):
class MySink(bt2._UserSinkComponent):
- def __init__(comp_self, params):
+ def __init__(comp_self, params, obj):
port1 = comp_self._add_input_port('clear')
port2 = comp_self._add_input_port('print')
port3 = comp_self._add_input_port('insert')
self.assertEqual(ports[2][0], 'insert')
self.assertEqual(ports[2][1].addr, port3.addr)
- def _consume(self):
+ def _user_consume(self):
pass
- comp = self._create_comp(MySink)
+ self._create_comp(MySink)
def test_gen_src_output_ports_getitem(self):
class MyIter(bt2._UserMessageIterator):
port2 = None
port3 = None
- class MySource(bt2._UserSourceComponent,
- message_iterator_class=MyIter):
- def __init__(comp_self, params):
+ class MySource(bt2._UserSourceComponent, message_iterator_class=MyIter):
+ def __init__(comp_self, params, obj):
nonlocal port1, port2, port3
port1 = comp_self._add_output_port('clear')
port2 = comp_self._add_output_port('print')
port2 = None
port3 = None
- class MyFilter(bt2._UserFilterComponent,
- message_iterator_class=MyIter):
- def __init__(comp_self, params):
+ class MyFilter(bt2._UserFilterComponent, message_iterator_class=MyIter):
+ def __init__(comp_self, params, obj):
nonlocal port1, port2, port3
port1 = comp_self._add_output_port('clear')
port2 = comp_self._add_output_port('print')
port2 = None
port3 = None
- class MyFilter(bt2._UserFilterComponent,
- message_iterator_class=MyIter):
- def __init__(comp_self, params):
+ class MyFilter(bt2._UserFilterComponent, message_iterator_class=MyIter):
+ def __init__(comp_self, params, obj):
nonlocal port1, port2, port3
port1 = comp_self._add_input_port('clear')
port2 = comp_self._add_input_port('print')
port3 = None
class MySink(bt2._UserSinkComponent):
- def __init__(comp_self, params):
+ def __init__(comp_self, 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)
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=MyIter):
+ def __init__(comp_self, params, obj):
comp_self._add_output_port('clear')
comp_self._add_output_port('print')
comp_self._add_output_port('insert')
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=MyIter):
+ def __init__(comp_self, params, obj):
comp_self._add_output_port('clear')
comp_self._add_output_port('print')
comp_self._add_output_port('insert')
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=MyIter):
+ def __init__(comp_self, params, obj):
comp_self._add_input_port('clear')
comp_self._add_input_port('print')
comp_self._add_input_port('insert')
def test_gen_sink_input_ports_getitem_invalid_key(self):
class MySink(bt2._UserSinkComponent):
- def __init__(comp_self, params):
+ def __init__(comp_self, params, obj):
comp_self._add_input_port('clear')
comp_self._add_input_port('print')
comp_self._add_input_port('insert')
with self.assertRaises(KeyError):
comp_self._input_ports['hello']
- def _consume(self):
+ def _user_consume(self):
pass
comp = self._create_comp(MySink)
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=MyIter):
+ def __init__(comp_self, params, obj):
comp_self._add_output_port('clear')
comp_self._add_output_port('print')
comp_self._add_output_port('insert')
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=MyIter):
+ def __init__(comp_self, params, obj):
comp_self._add_output_port('clear')
comp_self._add_output_port('print')
comp_self._add_output_port('insert')
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=MyIter):
+ def __init__(comp_self, params, obj):
comp_self._add_input_port('clear')
comp_self._add_input_port('print')
comp_self._add_input_port('insert')
def test_gen_sink_input_ports_len(self):
class MySink(bt2._UserSinkComponent):
- def __init__(comp_self, params):
+ def __init__(comp_self, 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)
port2 = None
port3 = None
- class MySource(bt2._UserSourceComponent,
- message_iterator_class=MyIter):
- def __init__(comp_self, params):
+ class MySource(bt2._UserSourceComponent, message_iterator_class=MyIter):
+ def __init__(comp_self, params, obj):
nonlocal port1, port2, port3
port1 = comp_self._add_output_port('clear')
port2 = comp_self._add_output_port('print')
port2 = None
port3 = None
- class MyFilter(bt2._UserFilterComponent,
- message_iterator_class=MyIter):
- def __init__(comp_self, params):
+ class MyFilter(bt2._UserFilterComponent, message_iterator_class=MyIter):
+ def __init__(comp_self, params, obj):
nonlocal port1, port2, port3
port1 = comp_self._add_output_port('clear')
port2 = comp_self._add_output_port('print')
port2 = None
port3 = None
- class MyFilter(bt2._UserFilterComponent,
- message_iterator_class=MyIter):
- def __init__(comp_self, params):
+ class MyFilter(bt2._UserFilterComponent, message_iterator_class=MyIter):
+ def __init__(comp_self, params, obj):
nonlocal port1, port2, port3
port1 = comp_self._add_input_port('clear')
port2 = comp_self._add_input_port('print')
port3 = None
class MySink(bt2._UserSinkComponent):
- def __init__(comp_self, params):
+ def __init__(comp_self, 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)
def test_name(self):
class MySink(bt2._UserSinkComponent):
- def __init__(comp_self, params):
+ def __init__(comp_self, params, obj):
comp_self._add_input_port('clear')
- def _consume(self):
+ def _user_consume(self):
pass
comp = self._create_comp(MySink)
self.assertEqual(comp.input_ports['clear'].name, 'clear')
- def test_component(self):
- class MySink(bt2._UserSinkComponent):
- def __init__(comp_self, params):
- comp_self._add_input_port('clear')
-
- def _consume(self):
- pass
-
- comp = self._create_comp(MySink)
- self.assertEqual(comp.input_ports['clear'].component.addr, comp.addr)
-
def test_connection_none(self):
class MySink(bt2._UserSinkComponent):
- def __init__(comp_self, params):
+ def __init__(comp_self, params, obj):
comp_self._add_input_port('clear')
- def _consume(self):
+ def _user_consume(self):
pass
comp = self._create_comp(MySink)
def test_is_connected_false(self):
class MySink(bt2._UserSinkComponent):
- def __init__(comp_self, params):
+ def __init__(comp_self, params, obj):
comp_self._add_input_port('clear')
- def _consume(self):
+ def _user_consume(self):
pass
comp = self._create_comp(MySink)
self.assertFalse(comp.input_ports['clear'].is_connected)
- def test_eq(self):
- class MySink(bt2._UserSinkComponent):
- def __init__(comp_self, params):
- comp_self._add_input_port('clear')
-
- def _consume(self):
- pass
-
- comp = self._create_comp(MySink)
- self.assertEqual(comp.input_ports['clear'],
- comp.input_ports['clear'])
-
- def test_eq_invalid(self):
+ def test_self_name(self):
class MySink(bt2._UserSinkComponent):
- def __init__(comp_self, params):
- comp_self._add_input_port('clear')
-
- def _consume(self):
- pass
-
- comp = self._create_comp(MySink)
- self.assertNotEqual(comp.input_ports['clear'], 23)
-
- def test_disconnect_no_connection(self):
- class MySink(bt2._UserSinkComponent):
- def __init__(comp_self, params):
- port = comp_self._add_input_port('clear')
-
- def _consume(self):
- pass
-
- comp = self._create_comp(MySink)
- comp.input_ports['clear'].disconnect()
-
- def test_priv_name(self):
- class MySink(bt2._UserSinkComponent):
- def __init__(comp_self, params):
+ def __init__(comp_self, params, obj):
port = comp_self._add_input_port('clear')
self.assertEqual(port.name, 'clear')
- def _consume(self):
+ def _user_consume(self):
pass
- comp = self._create_comp(MySink)
+ self._create_comp(MySink)
- def test_priv_component(self):
+ def test_self_connection_none(self):
class MySink(bt2._UserSinkComponent):
- def __init__(comp_self, params):
+ def __init__(comp_self, params, obj):
port = comp_self._add_input_port('clear')
- self.assertEqual(port.component, comp_self)
+ self.assertIsNone(port.connection)
- def _consume(self):
+ def _user_consume(self):
pass
- comp = self._create_comp(MySink)
+ self._create_comp(MySink)
- def test_priv_connection_none(self):
+ def test_self_is_connected_false(self):
class MySink(bt2._UserSinkComponent):
- def __init__(comp_self, params):
+ def __init__(comp_self, params, obj):
port = comp_self._add_input_port('clear')
- self.assertIsNone(port.connection)
+ self.assertFalse(port.is_connected)
- def _consume(self):
+ def _user_consume(self):
pass
- comp = self._create_comp(MySink)
+ self._create_comp(MySink)
- def test_priv_is_connected_false(self):
- class MySink(bt2._UserSinkComponent):
- def __init__(comp_self, params):
- port = comp_self._add_input_port('clear')
- self.assertFalse(port.is_connected)
+ def test_source_self_port_user_data(self):
+ class MyIter(bt2._UserMessageIterator):
+ def __next__(self):
+ raise bt2.Stop
- def _consume(self):
- pass
+ class MySource(bt2._UserFilterComponent, message_iterator_class=MyIter):
+ def __init__(comp_self, params, obj):
+ nonlocal user_datas
- comp = self._create_comp(MySink)
+ 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)
- def test_priv_eq(self):
- class MySink(bt2._UserSinkComponent):
- def __init__(comp_self, params):
- port = comp_self._add_input_port('clear')
- self.assertEqual(port, port)
+ user_datas = []
- def _consume(self):
- pass
+ self._create_comp(MySource)
+ self.assertEqual(user_datas, [None, 2])
- comp = self._create_comp(MySink)
+ def test_filter_self_port_user_data(self):
+ class MyIter(bt2._UserMessageIterator):
+ def __next__(self):
+ raise bt2.Stop
- def test_priv_eq_invalid(self):
- class MySink(bt2._UserSinkComponent):
- def __init__(comp_self, params):
- port = comp_self._add_input_port('clear')
- self.assertNotEqual(port, 23)
+ class MyFilter(bt2._UserFilterComponent, message_iterator_class=MyIter):
+ def __init__(comp_self, params, obj):
+ nonlocal user_datas
- def _consume(self):
- pass
+ 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)
- comp = self._create_comp(MySink)
+ 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)
- def test_priv_disconnect_no_connection(self):
- class MySink(bt2._UserSinkComponent):
- def __init__(comp_self, params):
- port = comp_self._add_input_port('clear')
- port.disconnect()
+ user_datas = []
- def _consume(self):
- pass
+ self._create_comp(MyFilter)
+ self.assertEqual(
+ user_datas, [None, 'user data string', None, {'user data': 'dict'}]
+ )
- comp = self._create_comp(MySink)
+ def test_sink_self_port_user_data(self):
+ class MyIter(bt2._UserMessageIterator):
+ def __next__(self):
+ raise bt2.Stop
- def test_priv_remove_from_component(self):
- class MySink(bt2._UserSinkComponent):
- def __init__(comp_self, params):
- port = comp_self._add_input_port('clear')
- self.assertEqual(len(comp_self._input_ports), 1)
+ class MySink(bt2._UserFilterComponent, message_iterator_class=MyIter):
+ def __init__(comp_self, params, obj):
+ nonlocal user_datas
- try:
- port.remove_from_component()
- except:
- import traceback
- traceback.print_exc()
+ 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)
- self.assertEqual(len(comp_self._input_ports), 0)
- self.assertIsNone(port.component)
+ user_datas = []
- def _consume(self):
- pass
+ self._create_comp(MySink)
+ self.assertEqual(user_datas, [None, set()])
- comp = self._create_comp(MySink)
+
+if __name__ == '__main__':
+ unittest.main()