bt2: Add `_Clock*Const` classes and adapt tests
[babeltrace.git] / tests / bindings / python / bt2 / test_trace_class.py
index 1b4b2a7ee30a939d48c2163786f0d9d08a3cbff5..168ae86367992d7a61a7ea5837ce7ad0cc0eeb0c 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):
@@ -31,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):
@@ -53,11 +82,13 @@ class TraceClassTestCase(unittest.TestCase):
         self.assertTrue(tc.assigns_automatic_stream_class_id)
 
         with self.assertRaises(ValueError):
-            sc1 = tc.create_stream_class(23)
+            tc.create_stream_class(23)
 
     def test_no_assigns_automatic_stream_class_id(self):
         def f(comp_self):
-            return comp_self._create_trace_class(assigns_automatic_stream_class_id=False)
+            return comp_self._create_trace_class(
+                assigns_automatic_stream_class_id=False
+            )
 
         tc = run_in_component_init(f)
         self.assertFalse(tc.assigns_automatic_stream_class_id)
@@ -67,7 +98,9 @@ class TraceClassTestCase(unittest.TestCase):
 
     def test_no_assigns_automatic_stream_class_id_raises(self):
         def f(comp_self):
-            return comp_self._create_trace_class(assigns_automatic_stream_class_id=False)
+            return comp_self._create_trace_class(
+                assigns_automatic_stream_class_id=False
+            )
 
         tc = run_in_component_init(f)
         self.assertFalse(tc.assigns_automatic_stream_class_id)
@@ -79,7 +112,9 @@ class TraceClassTestCase(unittest.TestCase):
     @staticmethod
     def _create_trace_class_with_some_stream_classes():
         def f(comp_self):
-            return comp_self._create_trace_class(assigns_automatic_stream_class_id=False)
+            return comp_self._create_trace_class(
+                assigns_automatic_stream_class_id=False
+            )
 
         tc = run_in_component_init(f)
         sc1 = tc.create_stream_class(id=12)
@@ -111,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.029186 seconds and 4 git commands to generate.