bt2: change some bt2.CreationError usages to ValueError
[babeltrace.git] / tests / bindings / python / bt2 / test_stream_class.py
CommitLineData
9cf643d1 1import unittest
9cf643d1 2import bt2
3cdfbaea 3from utils import run_in_component_init
9cf643d1
PP
4
5
6class StreamClassTestCase(unittest.TestCase):
7 def setUp(self):
3cdfbaea
SM
8 def f(comp_self):
9 tc = comp_self._create_trace_class(assigns_automatic_stream_class_id=True)
10 cc = comp_self._create_clock_class()
11 return tc, cc
12
13 self._tc, self._cc = run_in_component_init(f)
14 self._trace = self._tc()
15
16 def test_create_default(self):
17 sc = self._tc.create_stream_class()
18
19 self.assertIsNone(sc.name)
20 self.assertIsNone(sc.packet_context_field_class)
21 self.assertIsNone(sc.event_common_context_field_class)
22 self.assertIsNone(sc.default_clock_class)
23 self.assertTrue(sc.assigns_automatic_event_class_id)
24 self.assertTrue(sc.assigns_automatic_stream_id)
25 self.assertFalse(sc.packets_have_default_beginning_clock_snapshot)
26 self.assertFalse(sc.packets_have_default_end_clock_snapshot)
27
28 def test_create_name(self):
29 sc = self._tc.create_stream_class(name='bozo')
30 self.assertEqual(sc.name, 'bozo')
31
32 def test_create_invalid_name(self):
9cf643d1 33 with self.assertRaises(TypeError):
3cdfbaea 34 self._tc.create_stream_class(name=17)
9cf643d1 35
3cdfbaea
SM
36 def test_create_packet_context_field_class(self):
37 fc = self._tc.create_structure_field_class()
38 sc = self._tc.create_stream_class(packet_context_field_class=fc)
39 self.assertEqual(sc.packet_context_field_class, fc)
9cf643d1 40
3cdfbaea 41 def test_create_invalid_packet_context_field_class(self):
9cf643d1 42 with self.assertRaises(TypeError):
3cdfbaea 43 self._tc.create_stream_class(packet_context_field_class=22)
9cf643d1 44
3cdfbaea
SM
45 def test_create_event_common_context_field_class(self):
46 fc = self._tc.create_structure_field_class()
47 sc = self._tc.create_stream_class(event_common_context_field_class=fc)
48 self.assertEqual(sc.event_common_context_field_class, fc)
811644b8 49
3cdfbaea
SM
50 def test_create_invalid_event_common_context_field_class(self):
51 with self.assertRaises(TypeError):
52 self._tc.create_stream_class(event_common_context_field_class=22)
9cf643d1 53
3cdfbaea
SM
54 def test_create_default_clock_class(self):
55 sc = self._tc.create_stream_class(default_clock_class=self._cc)
56 self.assertEqual(sc.default_clock_class.addr, self._cc.addr)
9cf643d1 57
3cdfbaea 58 def test_create_invalid_default_clock_class(self):
9cf643d1 59 with self.assertRaises(TypeError):
3cdfbaea 60 self._tc.create_stream_class(default_clock_class=12)
9cf643d1 61
3cdfbaea
SM
62 def test_automatic_stream_ids(self):
63 sc = self._tc.create_stream_class(assigns_automatic_stream_id=True)
64 self.assertTrue(sc.assigns_automatic_stream_id)
9cf643d1 65
3cdfbaea
SM
66 stream = self._trace.create_stream(sc)
67 self.assertIsNotNone(stream.id)
9cf643d1 68
3cdfbaea
SM
69 def test_automatic_stream_ids_raises(self):
70 sc = self._tc.create_stream_class(assigns_automatic_stream_id=True)
71 self.assertTrue(sc.assigns_automatic_stream_id)
72
4430bc80 73 with self.assertRaises(ValueError):
3cdfbaea
SM
74 self._trace.create_stream(sc, id=123)
75
76 def test_no_automatic_stream_ids(self):
77 sc = self._tc.create_stream_class(assigns_automatic_stream_id=False)
78 self.assertFalse(sc.assigns_automatic_stream_id)
79
80 stream = self._trace.create_stream(sc, id=333)
81 self.assertEqual(stream.id, 333)
82
83 def test_no_automatic_stream_ids_raises(self):
84 sc = self._tc.create_stream_class(assigns_automatic_stream_id=False)
85 self.assertFalse(sc.assigns_automatic_stream_id)
86
4430bc80 87 with self.assertRaises(ValueError):
3cdfbaea
SM
88 self._trace.create_stream(sc)
89
90 def test_automatic_event_class_ids(self):
91 sc = self._tc.create_stream_class(assigns_automatic_event_class_id=True)
92 self.assertTrue(sc.assigns_automatic_event_class_id)
93
94 ec = sc.create_event_class()
95 self.assertIsNotNone(ec.id)
96
97 def test_automatic_event_class_ids_raises(self):
98 sc = self._tc.create_stream_class(assigns_automatic_event_class_id=True)
99 self.assertTrue(sc.assigns_automatic_event_class_id)
100
4430bc80 101 with self.assertRaises(ValueError):
3cdfbaea
SM
102 sc.create_event_class(id=123)
103
104 def test_no_automatic_event_class_ids(self):
105 sc = self._tc.create_stream_class(assigns_automatic_event_class_id=False)
106 self.assertFalse(sc.assigns_automatic_event_class_id)
9cf643d1 107
3cdfbaea
SM
108 ec = sc.create_event_class(id=333)
109 self.assertEqual(ec.id, 333)
9cf643d1 110
3cdfbaea
SM
111 def test_no_automatic_event_class_ids_raises(self):
112 sc = self._tc.create_stream_class(assigns_automatic_event_class_id=False)
113 self.assertFalse(sc.assigns_automatic_event_class_id)
9cf643d1 114
4430bc80 115 with self.assertRaises(ValueError):
3cdfbaea
SM
116 sc.create_event_class()
117
118 def test_packets_have_default_beginning_clock_snapshot(self):
119 sc = self._tc.create_stream_class(default_clock_class=self._cc, packets_have_default_beginning_clock_snapshot=True)
120 self.assertTrue(sc.packets_have_default_beginning_clock_snapshot)
121
122 def test_packets_have_default_beginning_clock_snapshot_raises(self):
123 with self.assertRaises(TypeError):
124 sc = self._tc.create_stream_class(packets_have_default_beginning_clock_snapshot="something")
125
126 def test_packets_have_default_end_clock_snapshot(self):
127 sc = self._tc.create_stream_class(default_clock_class=self._cc, packets_have_default_end_clock_snapshot=True)
128 self.assertTrue(sc.packets_have_default_end_clock_snapshot)
129
130 def test_packets_have_default_end_clock_snapshot_raises(self):
9cf643d1 131 with self.assertRaises(TypeError):
3cdfbaea
SM
132 sc = self._tc.create_stream_class(packets_have_default_end_clock_snapshot="something")
133
134 def test_trace_class(self):
135 sc = self._tc.create_stream_class()
136 self.assertEqual(sc.trace_class.addr, self._tc.addr)
137
138 def _create_stream_class_with_event_classes(self):
139 sc = self._tc.create_stream_class(assigns_automatic_event_class_id=False)
140 ec1 = sc.create_event_class(id=23)
141 ec2 = sc.create_event_class(id=17)
142 return sc, ec1, ec2
9cf643d1
PP
143
144 def test_getitem(self):
3cdfbaea
SM
145 sc, ec1, ec2 = self._create_stream_class_with_event_classes()
146
147 self.assertEqual(sc[23].addr, ec1.addr)
148 self.assertEqual(sc[17].addr, ec2.addr)
9cf643d1
PP
149
150 def test_getitem_wrong_key_type(self):
3cdfbaea
SM
151 sc, _, _ = self._create_stream_class_with_event_classes()
152
9cf643d1 153 with self.assertRaises(TypeError):
3cdfbaea 154 sc['event23']
9cf643d1
PP
155
156 def test_getitem_wrong_key(self):
3cdfbaea
SM
157 sc, _, _ = self._create_stream_class_with_event_classes()
158
9cf643d1 159 with self.assertRaises(KeyError):
3cdfbaea 160 sc[19]
9cf643d1
PP
161
162 def test_len(self):
3cdfbaea
SM
163 sc, _, _ = self._create_stream_class_with_event_classes()
164
165 self.assertEqual(len(sc), 2)
9cf643d1
PP
166
167 def test_iter(self):
3cdfbaea
SM
168 sc, _, _ = self._create_stream_class_with_event_classes()
169
170 ec_ids = sorted(sc)
171 self.assertEqual(ec_ids, [17, 23])
This page took 0.047348 seconds and 4 git commands to generate.