tests: make auto-source-discovery-{log_level,params} tests use sink.text.details
[babeltrace.git] / tests / data / cli / convert / auto-source-discovery-params-log-level / bt_plugin_test.py
index dc7f4e69940a953a117bb5d1d37d2cc35030aea6..a1ac699454bef32ec8937e49a789e1a381e0c942 100644 (file)
@@ -1,42 +1,60 @@
 import bt2
 import os
 
-# This file defines source component classes that can print (depending the on
-# the `print` param):
+# This file defines source component classes to help verify the parameters an
+# log levels passed to components.  Each component creates one stream, with a
+# name derived from either:
 #
-#  - Parameter names and values, for parameter whose name starts with `test-`.
-#  - Component log levels as integers
+#   - the received params that start with `test-`
+#   - the received log level
+#
+# The `what` parameter determines what is used.
 
 
 class TestIter(bt2._UserMessageIterator):
-    pass
+    def __init__(self, output_port):
+        params = output_port.user_data['params']
 
+        comp_cls_name = self._component.__class__.__name__
 
-class Base:
-    @classmethod
-    def _print_test_params(cls, params):
-        items = sorted([str(x) for x in params.items() if x[0].startswith('test-')])
-        print('{}: {}'.format(cls.__name__, ', '.join(items)))
-
-    def _print_log_level(self):
-        cls_name = self.__class__.__name__
-        log_level = self.logging_level
-        print('{}: {}'.format(cls_name, log_level))
-
-    def _print_info(self, params):
-        what = params['print']
-        if what == 'test-params':
-            self._print_test_params(params)
-        elif what == 'log-level':
-            self._print_log_level()
+        if params['what'] == 'test-params':
+            items = sorted([str(x) for x in params.items() if x[0].startswith('test-')])
+            stream_name = '{}: {}'.format(comp_cls_name, ', '.join(items))
+        elif params['what'] == 'log-level':
+            log_level = self._component.logging_level
+            stream_name = '{}: {}'.format(comp_cls_name, log_level)
         else:
             assert False
 
+        sc = output_port.user_data['sc']
+        tc = sc.trace_class
+        t = tc()
+        s = t.create_stream(sc, name=stream_name)
+
+        self._msgs = [
+            self._create_stream_beginning_message(s),
+            self._create_stream_end_message(s),
+        ]
+
+    def __next__(self):
+        if len(self._msgs) == 0:
+            raise StopIteration
+
+        return self._msgs.pop(0)
+
+
+class Base:
+    def __init__(self, params):
+        tc = self._create_trace_class()
+        sc = tc.create_stream_class()
+
+        self._add_output_port('out', {'params': params, 'sc': sc})
+
 
 @bt2.plugin_component_class
 class TestSourceA(Base, bt2._UserSourceComponent, message_iterator_class=TestIter):
-    def __init__(self, params):
-        self._print_info(params)
+    def __init__(self, params, obj):
+        super().__init__(params)
 
     @staticmethod
     def _user_query(priv_query_exec, obj, params, method_obj):
@@ -58,8 +76,8 @@ class TestSourceA(Base, bt2._UserSourceComponent, message_iterator_class=TestIte
 
 @bt2.plugin_component_class
 class TestSourceB(Base, bt2._UserSourceComponent, message_iterator_class=TestIter):
-    def __init__(self, params):
-        self._print_info(params)
+    def __init__(self, params, obj):
+        super().__init__(params)
 
     @staticmethod
     def _user_query(priv_query_exec, obj, params, method_obj):
This page took 0.039496 seconds and 4 git commands to generate.