Fix: bt2: _trim_docstring(): docstring can have 0 or 1 line
[babeltrace.git] / tests / bindings / python / bt2 / test_component_class.py
index 98fc91dbb9b7f8de675a95a59e71f66b40542fbd..acb2e8b260782913d70ab06b97ea6bab3d17d773 100644 (file)
@@ -26,21 +26,17 @@ class UserComponentClassTestCase(unittest.TestCase):
             cls()
 
     def test_no_init_source(self):
-        class MyIter(bt2._UserMessageIterator):
-            def __next__(self):
-                raise bt2.Stop
-
-        class MySource(bt2._UserSourceComponent, message_iterator_class=MyIter):
+        class MySource(
+            bt2._UserSourceComponent, message_iterator_class=bt2._UserMessageIterator
+        ):
             pass
 
         self._test_no_init(MySource)
 
     def test_no_init_filter(self):
-        class MyIter(bt2._UserMessageIterator):
-            def __next__(self):
-                raise bt2.Stop
-
-        class MyFilter(bt2._UserFilterComponent, message_iterator_class=MyIter):
+        class MyFilter(
+            bt2._UserFilterComponent, message_iterator_class=bt2._UserMessageIterator
+        ):
             pass
 
         self._test_no_init(MyFilter)
@@ -53,53 +49,39 @@ class UserComponentClassTestCase(unittest.TestCase):
         self._test_no_init(MySink)
 
     def test_incomplete_source_no_msg_iter_cls(self):
-        class MyIter(bt2._UserMessageIterator):
-            pass
-
         with self.assertRaises(bt2._IncompleteUserClass):
 
             class MySource(bt2._UserSourceComponent):
                 pass
 
     def test_incomplete_source_wrong_msg_iter_cls_type(self):
-        class MyIter(bt2._UserMessageIterator):
-            pass
-
         with self.assertRaises(bt2._IncompleteUserClass):
 
             class MySource(bt2._UserSourceComponent, message_iterator_class=int):
                 pass
 
     def test_incomplete_filter_no_msg_iter_cls(self):
-        class MyIter(bt2._UserMessageIterator):
-            pass
-
         with self.assertRaises(bt2._IncompleteUserClass):
 
             class MyFilter(bt2._UserFilterComponent):
                 pass
 
     def test_incomplete_sink_no_consume_method(self):
-        class MyIter(bt2._UserMessageIterator):
-            pass
-
         with self.assertRaises(bt2._IncompleteUserClass):
 
             class MySink(bt2._UserSinkComponent):
                 pass
 
     def test_minimal_source(self):
-        class MyIter(bt2._UserMessageIterator):
-            pass
-
-        class MySource(bt2._UserSourceComponent, message_iterator_class=MyIter):
+        class MySource(
+            bt2._UserSourceComponent, message_iterator_class=bt2._UserMessageIterator
+        ):
             pass
 
     def test_minimal_filter(self):
-        class MyIter(bt2._UserMessageIterator):
-            pass
-
-        class MyFilter(bt2._UserFilterComponent, message_iterator_class=MyIter):
+        class MyFilter(
+            bt2._UserFilterComponent, message_iterator_class=bt2._UserMessageIterator
+        ):
             pass
 
     def test_minimal_sink(self):
@@ -145,16 +127,38 @@ class UserComponentClassTestCase(unittest.TestCase):
 
         self.assertEqual(MySink.description, 'The description.')
 
-    def test_empty_description(self):
+    def test_empty_description_no_lines(self):
         class MySink(bt2._UserSinkComponent):
+            # fmt: off
+            """"""
+            # fmt: on
+
+            def _user_consume(self):
+                pass
+
+        self.assertIsNone(MySink.description)
+
+    def test_empty_description_no_contents(self):
+        class MySink(bt2._UserSinkComponent):
+            # fmt: off
             """
             """
+            # fmt: on
 
             def _user_consume(self):
                 pass
 
         self.assertIsNone(MySink.description)
 
+    def test_empty_description_single_line(self):
+        class MySink(bt2._UserSinkComponent):
+            """my description"""
+
+            def _user_consume(self):
+                pass
+
+        self.assertEqual(MySink.description, "my description")
+
     def test_help(self):
         class MySink(bt2._UserSinkComponent):
             """
@@ -309,11 +313,11 @@ class UserComponentClassTestCase(unittest.TestCase):
 class ComponentClassTestCase(unittest.TestCase):
     def setUp(self):
         class MySink(bt2._UserSinkComponent):
-            '''
+            """
             The description.
 
             The help.
-            '''
+            """
 
             def _user_consume(self):
                 pass
@@ -326,7 +330,7 @@ class ComponentClassTestCase(unittest.TestCase):
         graph = bt2.Graph()
         comp = graph.add_component(MySink, 'salut')
         self._comp_cls = comp.cls
-        self.assertTrue(issubclass(type(self._comp_cls), bt2._SinkComponentClass))
+        self.assertIs(type(self._comp_cls), bt2._SinkComponentClassConst)
 
     def tearDown(self):
         del self._py_comp_cls
@@ -358,3 +362,7 @@ class ComponentClassTestCase(unittest.TestCase):
         ).query()
         expected = ['an object', {'yes': 'no', 'book': -17}, 23]
         self.assertEqual(res, expected)
+
+
+if __name__ == '__main__':
+    unittest.main()
This page took 0.024694 seconds and 4 git commands to generate.