bt2: Add remaining trace-ir `*Const` classes and adapt tests
[babeltrace.git] / tests / bindings / python / bt2 / test_clock_class.py
index 9bc6bae7497593be6b15e7da9ccd941268b19f30..f630c3371df9e412c6a561daae9359ce58cd493d 100644 (file)
 import unittest
 import uuid
 import bt2
+import utils
 from utils import run_in_component_init, TestOutputPortMessageIterator
+from bt2 import value as bt2_value
+from bt2 import clock_class as bt2_clock_class
 
 
 class ClockClassOffsetTestCase(unittest.TestCase):
@@ -87,6 +90,7 @@ class ClockClassTestCase(unittest.TestCase):
         self.assertEqual(cc.offset, bt2.ClockClassOffset())
         self.assertTrue(cc.origin_is_unix_epoch)
         self.assertIsNone(cc.uuid)
+        self.assertEqual(len(cc.user_attributes), 0)
 
     def test_create_name(self):
         def f(comp_self):
@@ -198,6 +202,30 @@ class ClockClassTestCase(unittest.TestCase):
 
         self.assertRaisesInComponentInit(TypeError, f)
 
+    def test_create_user_attributes(self):
+        def f(comp_self):
+            return comp_self._create_clock_class(user_attributes={'salut': 23})
+
+        cc = run_in_component_init(f)
+        self.assertEqual(cc.user_attributes, {'salut': 23})
+        self.assertIs(type(cc.user_attributes), bt2_value.MapValue)
+
+    def test_create_invalid_user_attributes(self):
+        def f(comp_self):
+            return comp_self._create_clock_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_clock_class(user_attributes=23)
+
+        self.assertRaisesInComponentInit(TypeError, f)
+
+    def test_const_user_attributes(self):
+        cc = utils.get_const_event_message().default_clock_snapshot.clock_class
+        self.assertIs(type(cc.user_attributes), bt2_value._MapValueConst)
+
 
 class ClockSnapshotTestCase(unittest.TestCase):
     def setUp(self):
@@ -265,9 +293,9 @@ class ClockSnapshotTestCase(unittest.TestCase):
         self.assertEqual(self._msg.default_clock_snapshot.value, 123)
 
     def test_clock_class(self):
-        self.assertEqual(
-            self._msg.default_clock_snapshot.clock_class.addr, self._cc.addr
-        )
+        cc = self._msg.default_clock_snapshot.clock_class
+        self.assertEqual(cc.addr, self._cc.addr)
+        self.assertIs(type(cc), bt2_clock_class._ClockClassConst)
 
     def test_ns_from_origin(self):
         s_from_origin = 45 + ((354 + 123) / 1000)
This page took 0.023392 seconds and 4 git commands to generate.