bt2: Mass field_types -> field_class rename
[babeltrace.git] / tests / bindings / python / bt2 / test_stream_class.py
CommitLineData
9cf643d1
PP
1from bt2 import values
2import unittest
3import copy
4import bt2
5
6
90cfc012 7@unittest.skip("this is broken")
9cf643d1
PP
8class StreamClassTestCase(unittest.TestCase):
9 def setUp(self):
32656995
SM
10 self._packet_context_fc = bt2.StructureFieldClass()
11 self._packet_context_fc.append_field('menu', bt2.FloatingPointNumberFieldClass())
12 self._packet_context_fc.append_field('sticker', bt2.StringFieldClass())
13 self._event_header_fc = bt2.StructureFieldClass()
14 self._event_header_fc.append_field('id', bt2.IntegerFieldClass(19))
15 self._event_context_fc = bt2.StructureFieldClass()
16 self._event_context_fc.append_field('msg', bt2.StringFieldClass())
9cf643d1
PP
17 self._ec1, self._ec2 = self._create_event_classes()
18 self._sc = bt2.StreamClass(name='my_stream_class', id=12,
32656995
SM
19 packet_context_field_class=self._packet_context_fc,
20 event_header_field_class=self._event_header_fc,
21 event_context_field_class=self._event_context_fc,
9cf643d1
PP
22 event_classes=(self._ec1, self._ec2))
23
f6a5e476 24 def tearDown(self):
32656995
SM
25 del self._packet_context_fc
26 del self._event_header_fc
27 del self._event_context_fc
f6a5e476
PP
28 del self._ec1
29 del self._sc
30
9cf643d1 31 def _create_event_classes(self):
32656995
SM
32 context_fc = bt2.StructureFieldClass()
33 context_fc.append_field('allo', bt2.StringFieldClass())
34 context_fc.append_field('zola', bt2.IntegerFieldClass(18))
35 payload_fc = bt2.StructureFieldClass()
36 payload_fc.append_field('zoom', bt2.StringFieldClass())
37 ec1 = bt2.EventClass('event23', id=23, context_field_class=context_fc,
38 payload_field_class=payload_fc)
39 ec2 = bt2.EventClass('event17', id=17, context_field_class=payload_fc,
40 payload_field_class=context_fc)
9cf643d1
PP
41 return ec1, ec2
42
43 def test_create(self):
44 self.assertEqual(self._sc.name, 'my_stream_class')
45 self.assertEqual(self._sc.id, 12)
32656995
SM
46 self.assertEqual(self._sc.packet_context_field_class, self._packet_context_fc)
47 self.assertEqual(self._sc.event_header_field_class, self._event_header_fc)
48 self.assertEqual(self._sc.event_context_field_class, self._event_context_fc)
f6a5e476
PP
49 self.assertEqual(self._sc[23], self._ec1)
50 self.assertEqual(self._sc[17], self._ec2)
51 self.assertEqual(len(self._sc), 2)
9cf643d1
PP
52
53 def test_assign_name(self):
54 self._sc.name = 'lel'
55 self.assertEqual(self._sc.name, 'lel')
56
57 def test_assign_invalid_name(self):
58 with self.assertRaises(TypeError):
59 self._sc.name = 17
60
61 def test_assign_id(self):
62 self._sc.id = 1717
63 self.assertEqual(self._sc.id, 1717)
64
65 def test_assign_invalid_id(self):
66 with self.assertRaises(TypeError):
67 self._sc.id = 'lel'
68
f6a5e476
PP
69 def test_no_id(self):
70 sc = bt2.StreamClass()
71 self.assertIsNone(sc.id)
72
32656995
SM
73 def test_assign_packet_context_field_class(self):
74 self._sc.packet_context_field_class = self._event_context_fc
75 self.assertEqual(self._sc.packet_context_field_class, self._event_context_fc)
9cf643d1 76
32656995
SM
77 def test_assign_no_packet_context_field_class(self):
78 self._sc.packet_context_field_class = None
79 self.assertIsNone(self._sc.packet_context_field_class)
9cf643d1 80
32656995 81 def test_assign_invalid_packet_context_field_class(self):
9cf643d1 82 with self.assertRaises(TypeError):
32656995 83 self._sc.packet_context_field_class = 'lel'
9cf643d1 84
32656995
SM
85 def test_assign_event_header_field_class(self):
86 self._sc.event_header_field_class = self._event_header_fc
87 self.assertEqual(self._sc.event_header_field_class, self._event_header_fc)
9cf643d1 88
32656995
SM
89 def test_assign_no_event_header_field_class(self):
90 self._sc.event_header_field_class = None
91 self.assertIsNone(self._sc.event_header_field_class)
9cf643d1 92
32656995 93 def test_assign_invalid_event_header_field_class(self):
9cf643d1 94 with self.assertRaises(TypeError):
32656995 95 self._sc.event_header_field_class = 'lel'
9cf643d1 96
32656995
SM
97 def test_assign_event_context_field_class(self):
98 self._sc.event_context_field_class = self._packet_context_fc
99 self.assertEqual(self._sc.event_context_field_class, self._packet_context_fc)
9cf643d1 100
32656995
SM
101 def test_assign_no_event_context_field_class(self):
102 self._sc.event_context_field_class = None
103 self.assertIsNone(self._sc.event_context_field_class)
9cf643d1 104
32656995 105 def test_assign_invalid_event_context_field_class(self):
9cf643d1 106 with self.assertRaises(TypeError):
32656995 107 self._sc.event_context_field_class = 'lel'
9cf643d1
PP
108
109 def test_trace_prop_no_tc(self):
110 self.assertIsNone(self._sc.trace)
111
112 def test_trace_prop(self):
113 tc = bt2.Trace()
114 tc.add_stream_class(self._sc)
115 self.assertEqual(self._sc.trace.addr, tc.addr)
116
117 def _test_copy(self, cpy):
118 self.assertIsNot(cpy, self._sc)
119 self.assertNotEqual(cpy.addr, self._sc.addr)
120 self.assertEqual(cpy, self._sc)
121
122 def test_copy(self):
123 cpy = copy.copy(self._sc)
124 self._test_copy(cpy)
32656995
SM
125 self.assertEqual(self._sc.packet_context_field_class.addr, cpy.packet_context_field_class.addr)
126 self.assertEqual(self._sc.event_header_field_class.addr, cpy.event_header_field_class.addr)
127 self.assertEqual(self._sc.event_context_field_class.addr, cpy.event_context_field_class.addr)
9cf643d1
PP
128
129 def test_deepcopy(self):
130 cpy = copy.deepcopy(self._sc)
131 self._test_copy(cpy)
32656995
SM
132 self.assertNotEqual(self._sc.packet_context_field_class.addr, cpy.packet_context_field_class.addr)
133 self.assertNotEqual(self._sc.event_header_field_class.addr, cpy.event_header_field_class.addr)
134 self.assertNotEqual(self._sc.event_context_field_class.addr, cpy.event_context_field_class.addr)
9cf643d1
PP
135
136 def test_getitem(self):
f6a5e476
PP
137 self.assertEqual(self._sc[23], self._ec1)
138 self.assertEqual(self._sc[17], self._ec2)
9cf643d1
PP
139
140 def test_getitem_wrong_key_type(self):
141 with self.assertRaises(TypeError):
f6a5e476 142 self._sc['event23']
9cf643d1
PP
143
144 def test_getitem_wrong_key(self):
145 with self.assertRaises(KeyError):
f6a5e476 146 self._sc[19]
9cf643d1
PP
147
148 def test_len(self):
149 self.assertEqual(len(self._sc), 2)
150
151 def test_iter(self):
f6a5e476 152 for ec_id, event_class in self._sc.items():
9cf643d1
PP
153 self.assertIsInstance(event_class, bt2.EventClass)
154
f6a5e476 155 if ec_id == 23:
9cf643d1 156 self.assertEqual(event_class, self._ec1)
f6a5e476 157 elif ec_id == 17:
9cf643d1
PP
158 self.assertEqual(event_class, self._ec2)
159
9cf643d1
PP
160 def test_eq(self):
161 ec1, ec2 = self._create_event_classes()
162 sc1 = bt2.StreamClass(name='my_stream_class', id=12,
32656995
SM
163 packet_context_field_class=self._packet_context_fc,
164 event_header_field_class=self._event_header_fc,
165 event_context_field_class=self._event_context_fc,
9cf643d1
PP
166 event_classes=(ec1, ec2))
167 ec1, ec2 = self._create_event_classes()
168 sc2 = bt2.StreamClass(name='my_stream_class', id=12,
32656995
SM
169 packet_context_field_class=self._packet_context_fc,
170 event_header_field_class=self._event_header_fc,
171 event_context_field_class=self._event_context_fc,
9cf643d1
PP
172 event_classes=(ec1, ec2))
173 self.assertEqual(sc1, sc2)
174
175 def test_ne_name(self):
176 ec1, ec2 = self._create_event_classes()
177 sc1 = bt2.StreamClass(name='my_stream_class1', id=12,
32656995
SM
178 packet_context_field_class=self._packet_context_fc,
179 event_header_field_class=self._event_header_fc,
180 event_context_field_class=self._event_context_fc,
9cf643d1
PP
181 event_classes=(ec1, ec2))
182 ec1, ec2 = self._create_event_classes()
183 sc2 = bt2.StreamClass(name='my_stream_class', id=12,
32656995
SM
184 packet_context_field_class=self._packet_context_fc,
185 event_header_field_class=self._event_header_fc,
186 event_context_field_class=self._event_context_fc,
9cf643d1
PP
187 event_classes=(ec1, ec2))
188 self.assertNotEqual(sc1, sc2)
189
190 def test_ne_id(self):
191 ec1, ec2 = self._create_event_classes()
192 sc1 = bt2.StreamClass(name='my_stream_class', id=13,
32656995
SM
193 packet_context_field_class=self._packet_context_fc,
194 event_header_field_class=self._event_header_fc,
195 event_context_field_class=self._event_context_fc,
9cf643d1
PP
196 event_classes=(ec1, ec2))
197 ec1, ec2 = self._create_event_classes()
198 sc2 = bt2.StreamClass(name='my_stream_class', id=12,
32656995
SM
199 packet_context_field_class=self._packet_context_fc,
200 event_header_field_class=self._event_header_fc,
201 event_context_field_class=self._event_context_fc,
9cf643d1
PP
202 event_classes=(ec1, ec2))
203 self.assertNotEqual(sc1, sc2)
204
32656995 205 def test_ne_packet_context_field_class(self):
9cf643d1
PP
206 ec1, ec2 = self._create_event_classes()
207 sc1 = bt2.StreamClass(name='my_stream_class', id=12,
32656995
SM
208 packet_context_field_class=self._event_context_fc,
209 event_header_field_class=self._event_header_fc,
210 event_context_field_class=self._event_context_fc,
9cf643d1
PP
211 event_classes=(ec1, ec2))
212 ec1, ec2 = self._create_event_classes()
213 sc2 = bt2.StreamClass(name='my_stream_class', id=12,
32656995
SM
214 packet_context_field_class=self._packet_context_fc,
215 event_header_field_class=self._event_header_fc,
216 event_context_field_class=self._event_context_fc,
9cf643d1
PP
217 event_classes=(ec1, ec2))
218 self.assertNotEqual(sc1, sc2)
219
32656995 220 def test_ne_event_header_field_class(self):
9cf643d1
PP
221 ec1, ec2 = self._create_event_classes()
222 sc1 = bt2.StreamClass(name='my_stream_class', id=12,
32656995
SM
223 packet_context_field_class=self._packet_context_fc,
224 event_context_field_class=self._event_context_fc,
9cf643d1
PP
225 event_classes=(ec1, ec2))
226 ec1, ec2 = self._create_event_classes()
227 sc2 = bt2.StreamClass(name='my_stream_class', id=12,
32656995
SM
228 packet_context_field_class=self._packet_context_fc,
229 event_header_field_class=self._event_header_fc,
230 event_context_field_class=self._event_context_fc,
9cf643d1
PP
231 event_classes=(ec1, ec2))
232 self.assertNotEqual(sc1, sc2)
233
32656995 234 def test_ne_event_context_field_class(self):
9cf643d1
PP
235 ec1, ec2 = self._create_event_classes()
236 sc1 = bt2.StreamClass(name='my_stream_class', id=12,
32656995
SM
237 packet_context_field_class=self._packet_context_fc,
238 event_header_field_class=self._event_header_fc,
239 event_context_field_class=self._packet_context_fc,
9cf643d1
PP
240 event_classes=(ec1, ec2))
241 ec1, ec2 = self._create_event_classes()
242 sc2 = bt2.StreamClass(name='my_stream_class', id=12,
32656995
SM
243 packet_context_field_class=self._packet_context_fc,
244 event_header_field_class=self._event_header_fc,
245 event_context_field_class=self._event_context_fc,
9cf643d1
PP
246 event_classes=(ec1, ec2))
247 self.assertNotEqual(sc1, sc2)
248
249 def test_ne_event_class(self):
250 ec1, ec2 = self._create_event_classes()
251 sc1 = bt2.StreamClass(name='my_stream_class', id=12,
32656995
SM
252 packet_context_field_class=self._packet_context_fc,
253 event_header_field_class=self._event_header_fc,
254 event_context_field_class=self._event_context_fc,
9cf643d1
PP
255 event_classes=(ec1,))
256 ec1, ec2 = self._create_event_classes()
257 sc2 = bt2.StreamClass(name='my_stream_class', id=12,
32656995
SM
258 packet_context_field_class=self._packet_context_fc,
259 event_header_field_class=self._event_header_fc,
260 event_context_field_class=self._event_context_fc,
9cf643d1
PP
261 event_classes=(ec1, ec2))
262 self.assertNotEqual(sc1, sc2)
263
264 def test_eq_invalid(self):
265 self.assertFalse(self._sc == 23)
This page took 0.045912 seconds and 4 git commands to generate.