autodisc: don't accept NULL values for `support-info` query `group` key
[babeltrace.git] / tests / bindings / python / bt2 / test_trace_class.py
index cf286658f4938c5c22ed2c8b47662e97ba73b56d..d8f60143fb01c18e3f65ebc98d833c8f4e59b2cb 100644 (file)
 #
 
 import unittest
-import bt2
 from utils import run_in_component_init, get_default_trace_class
 
 
 class TraceClassTestCase(unittest.TestCase):
+    def assertRaisesInComponentInit(self, expected_exc_type, user_code):
+        def f(comp_self):
+            try:
+                user_code(comp_self)
+            except Exception as exc:
+                return type(exc)
+
+        exc_type = run_in_component_init(f)
+        self.assertIsNotNone(exc_type)
+        self.assertEqual(exc_type, expected_exc_type)
+
     def test_create_default(self):
         def f(comp_self):
             return comp_self._create_trace_class()
@@ -30,6 +40,26 @@ class TraceClassTestCase(unittest.TestCase):
 
         self.assertEqual(len(tc), 0)
         self.assertTrue(tc.assigns_automatic_stream_class_id)
+        self.assertEqual(len(tc.user_attributes), 0)
+
+    def test_create_user_attributes(self):
+        def f(comp_self):
+            return comp_self._create_trace_class(user_attributes={'salut': 23})
+
+        tc = run_in_component_init(f)
+        self.assertEqual(tc.user_attributes, {'salut': 23})
+
+    def test_create_invalid_user_attributes(self):
+        def f(comp_self):
+            return comp_self._create_trace_class(user_attributes=object())
+
+        self.assertRaisesInComponentInit(TypeError, f)
+
+    def test_create_invalid_user_attributes_value_type(self):
+        def f(comp_self):
+            return comp_self._create_trace_class(user_attributes=23)
+
+        self.assertRaisesInComponentInit(TypeError, f)
 
     def test_automatic_stream_class_id(self):
         def f(comp_self):
@@ -116,8 +146,6 @@ class TraceClassTestCase(unittest.TestCase):
         tc, sc1, sc2, sc3 = self._create_trace_class_with_some_stream_classes()
 
         for sc_id, stream_class in tc.items():
-            self.assertIsInstance(stream_class, bt2.stream_class._StreamClass)
-
             if sc_id == 12:
                 self.assertEqual(stream_class.addr, sc1.addr)
             elif sc_id == 54:
This page took 0.030254 seconds and 4 git commands to generate.