X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=tests%2Fbindings%2Fpython%2Fbt2%2Ftest_port.py;h=e6db06ea53c0736b3cf4facaa86e869179789483;hb=157a98edd5aebe1b6ab7f60a49d8430450fabe76;hp=c4b7674c0960bf95c31e7b628bfaa658896a4391;hpb=5d9ef4cb64e5bd7793d443cbfcc0248bb8804580;p=babeltrace.git diff --git a/tests/bindings/python/bt2/test_port.py b/tests/bindings/python/bt2/test_port.py index c4b7674c..e6db06ea 100644 --- a/tests/bindings/python/bt2/test_port.py +++ b/tests/bindings/python/bt2/test_port.py @@ -30,6 +30,27 @@ class PortTestCase(unittest.TestCase): self.assertEqual(len(comp.output_ports), 1) self.assertIs(type(comp.output_ports['out']), bt2_port._OutputPortConst) + # Test adding output port with duplicate name to source. + def test_src_add_output_port_dup_name_raises(self): + class MySource( + bt2._UserSourceComponent, message_iterator_class=bt2._UserMessageIterator + ): + def __init__(comp_self, config, params, obj): + comp_self._add_output_port('out') + + with self.assertRaisesRegex( + ValueError, + "source component `comp` already contains an output port named `out`", + ): + comp_self._add_output_port('out') + + nonlocal seen + seen = True + + seen = False + self._create_comp(MySource) + self.assertTrue(seen) + def test_flt_add_output_port(self): class MyFilter( bt2._UserFilterComponent, message_iterator_class=bt2._UserMessageIterator @@ -41,6 +62,27 @@ class PortTestCase(unittest.TestCase): comp = self._create_comp(MyFilter) self.assertEqual(len(comp.output_ports), 1) + # Test adding output port with duplicate name to filter. + def test_flt_add_output_port_dup_name_raises(self): + class MyFilter( + bt2._UserFilterComponent, message_iterator_class=bt2._UserMessageIterator + ): + def __init__(comp_self, config, params, obj): + comp_self._add_output_port('out') + + with self.assertRaisesRegex( + ValueError, + "filter component `comp` already contains an output port named `out`", + ): + comp_self._add_output_port('out') + + nonlocal seen + seen = True + + seen = False + self._create_comp(MyFilter) + self.assertTrue(seen) + def test_flt_add_input_port(self): class MyFilter( bt2._UserFilterComponent, message_iterator_class=bt2._UserMessageIterator @@ -53,6 +95,27 @@ class PortTestCase(unittest.TestCase): self.assertEqual(len(comp.input_ports), 1) self.assertIs(type(comp.input_ports['in']), bt2_port._InputPortConst) + # Test adding input port with duplicate name to filter. + def test_flt_add_input_port_dup_name_raises(self): + class MyFilter( + bt2._UserFilterComponent, message_iterator_class=bt2._UserMessageIterator + ): + def __init__(comp_self, config, params, obj): + comp_self._add_input_port('in') + + with self.assertRaisesRegex( + ValueError, + "filter component `comp` already contains an input port named `in`", + ): + comp_self._add_input_port('in') + + nonlocal seen + seen = True + + seen = False + self._create_comp(MyFilter) + self.assertTrue(seen) + def test_sink_add_input_port(self): class MySink(bt2._UserSinkComponent): def __init__(comp_self, config, params, obj): @@ -65,6 +128,28 @@ class PortTestCase(unittest.TestCase): comp = self._create_comp(MySink) self.assertEqual(len(comp.input_ports), 1) + # Test adding input port with duplicate name to sink. + def test_sink_add_input_port_dup_name_raises(self): + class MySink(bt2._UserSinkComponent): + def __init__(comp_self, config, params, obj): + comp_self._add_input_port('in') + + with self.assertRaisesRegex( + ValueError, + "sink component `comp` already contains an input port named `in`", + ): + comp_self._add_input_port('in') + + nonlocal seen + seen = True + + def _user_consume(self): + pass + + seen = False + self._create_comp(MySink) + self.assertTrue(seen) + def test_user_src_output_ports_getitem(self): class MySource( bt2._UserSourceComponent, message_iterator_class=bt2._UserMessageIterator