bt2: Adapt test_trace.py and make it pass
[babeltrace.git] / tests / bindings / python / bt2 / test_trace.py
1 import unittest
2 from utils import get_default_trace_class
3
4
5 class TraceTestCase(unittest.TestCase):
6 def setUp(self):
7 self._tc = get_default_trace_class()
8
9 def test_create_default(self):
10 trace = self._tc()
11 self.assertEqual(trace.name, None)
12
13 def test_create_full(self):
14 trace = self._tc(name='my name')
15 self.assertEqual(trace.name, 'my name')
16
17 def test_create_invalid_name(self):
18 with self.assertRaises(TypeError):
19 self._tc(name=17)
20
21 def test_len(self):
22 trace = self._tc()
23 sc = self._tc.create_stream_class()
24 self.assertEqual(len(trace), 0)
25
26 trace.create_stream(sc)
27 self.assertEqual(len(trace), 1)
28
29 def _create_trace_with_some_streams(self):
30 sc = self._tc.create_stream_class(assigns_automatic_stream_id=False)
31 trace = self._tc()
32 trace.create_stream(sc, id=12)
33 trace.create_stream(sc, id=15)
34 trace.create_stream(sc, id=17)
35
36 return trace
37
38 def test_iter(self):
39 trace = self._create_trace_with_some_streams()
40 stream_ids = set(trace)
41 self.assertEqual(stream_ids, {12, 15, 17})
42
43 def test_getitem(self):
44 trace = self._create_trace_with_some_streams()
45
46 self.assertEqual(trace[12].id, 12)
47
48 def test_getitem_invalid_key(self):
49 trace = self._create_trace_with_some_streams()
50 with self.assertRaises(KeyError):
51 trace[18]
52
53 def test_destruction_listener(self):
54 def on_trace_class_destruction(trace_class):
55 nonlocal trace_class_destroyed
56 trace_class_destroyed = True
57
58 def on_trace_destruction(trace):
59 nonlocal trace_destroyed
60 trace_destroyed = True
61
62 trace_destroyed = False
63 trace_class_destroyed = False
64
65 trace_class = get_default_trace_class()
66 stream_class = trace_class.create_stream_class()
67 trace = trace_class()
68 stream = trace.create_stream(stream_class)
69
70 trace_class.add_destruction_listener(on_trace_class_destruction)
71 trace.add_destruction_listener(on_trace_destruction)
72
73 self.assertFalse(trace_class_destroyed)
74 self.assertFalse(trace_destroyed)
75
76 del trace
77
78 self.assertFalse(trace_class_destroyed)
79 self.assertFalse(trace_destroyed)
80
81 del stream
82
83 self.assertFalse(trace_class_destroyed)
84 self.assertTrue(trace_destroyed)
85
86 del trace_class
87
88 self.assertFalse(trace_class_destroyed)
89 self.assertTrue(trace_destroyed)
90
91 del stream_class
92
93 self.assertTrue(trace_class_destroyed)
94 self.assertTrue(trace_destroyed)
This page took 0.030876 seconds and 4 git commands to generate.