7 @unittest.skip("this is broken")
8 class StreamClassTestCase(unittest
.TestCase
):
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())
17 self
._ec
1, self
._ec
2 = self
._create
_event
_classes
()
18 self
._sc
= bt2
.StreamClass(name
='my_stream_class', id=12,
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
,
22 event_classes
=(self
._ec
1, self
._ec
2))
25 del self
._packet
_context
_fc
26 del self
._event
_header
_fc
27 del self
._event
_context
_fc
31 def _create_event_classes(self
):
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
)
43 def test_create(self
):
44 self
.assertEqual(self
._sc
.name
, 'my_stream_class')
45 self
.assertEqual(self
._sc
.id, 12)
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
)
49 self
.assertEqual(self
._sc
[23], self
._ec
1)
50 self
.assertEqual(self
._sc
[17], self
._ec
2)
51 self
.assertEqual(len(self
._sc
), 2)
53 def test_assign_name(self
):
55 self
.assertEqual(self
._sc
.name
, 'lel')
57 def test_assign_invalid_name(self
):
58 with self
.assertRaises(TypeError):
61 def test_assign_id(self
):
63 self
.assertEqual(self
._sc
.id, 1717)
65 def test_assign_invalid_id(self
):
66 with self
.assertRaises(TypeError):
70 sc
= bt2
.StreamClass()
71 self
.assertIsNone(sc
.id)
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
)
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
)
81 def test_assign_invalid_packet_context_field_class(self
):
82 with self
.assertRaises(TypeError):
83 self
._sc
.packet_context_field_class
= 'lel'
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
)
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
)
93 def test_assign_invalid_event_header_field_class(self
):
94 with self
.assertRaises(TypeError):
95 self
._sc
.event_header_field_class
= 'lel'
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
)
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
)
105 def test_assign_invalid_event_context_field_class(self
):
106 with self
.assertRaises(TypeError):
107 self
._sc
.event_context_field_class
= 'lel'
109 def test_trace_prop_no_tc(self
):
110 self
.assertIsNone(self
._sc
.trace
)
112 def test_trace_prop(self
):
114 tc
.add_stream_class(self
._sc
)
115 self
.assertEqual(self
._sc
.trace
.addr
, tc
.addr
)
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
)
123 cpy
= copy
.copy(self
._sc
)
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
)
129 def test_deepcopy(self
):
130 cpy
= copy
.deepcopy(self
._sc
)
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
)
136 def test_getitem(self
):
137 self
.assertEqual(self
._sc
[23], self
._ec
1)
138 self
.assertEqual(self
._sc
[17], self
._ec
2)
140 def test_getitem_wrong_key_type(self
):
141 with self
.assertRaises(TypeError):
144 def test_getitem_wrong_key(self
):
145 with self
.assertRaises(KeyError):
149 self
.assertEqual(len(self
._sc
), 2)
152 for ec_id
, event_class
in self
._sc
.items():
153 self
.assertIsInstance(event_class
, bt2
.EventClass
)
156 self
.assertEqual(event_class
, self
._ec
1)
158 self
.assertEqual(event_class
, self
._ec
2)
161 ec1
, ec2
= self
._create
_event
_classes
()
162 sc1
= bt2
.StreamClass(name
='my_stream_class', id=12,
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
,
166 event_classes
=(ec1
, ec2
))
167 ec1
, ec2
= self
._create
_event
_classes
()
168 sc2
= bt2
.StreamClass(name
='my_stream_class', id=12,
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
,
172 event_classes
=(ec1
, ec2
))
173 self
.assertEqual(sc1
, sc2
)
175 def test_ne_name(self
):
176 ec1
, ec2
= self
._create
_event
_classes
()
177 sc1
= bt2
.StreamClass(name
='my_stream_class1', id=12,
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
,
181 event_classes
=(ec1
, ec2
))
182 ec1
, ec2
= self
._create
_event
_classes
()
183 sc2
= bt2
.StreamClass(name
='my_stream_class', id=12,
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
,
187 event_classes
=(ec1
, ec2
))
188 self
.assertNotEqual(sc1
, sc2
)
190 def test_ne_id(self
):
191 ec1
, ec2
= self
._create
_event
_classes
()
192 sc1
= bt2
.StreamClass(name
='my_stream_class', id=13,
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
,
196 event_classes
=(ec1
, ec2
))
197 ec1
, ec2
= self
._create
_event
_classes
()
198 sc2
= bt2
.StreamClass(name
='my_stream_class', id=12,
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
,
202 event_classes
=(ec1
, ec2
))
203 self
.assertNotEqual(sc1
, sc2
)
205 def test_ne_packet_context_field_class(self
):
206 ec1
, ec2
= self
._create
_event
_classes
()
207 sc1
= bt2
.StreamClass(name
='my_stream_class', id=12,
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
,
211 event_classes
=(ec1
, ec2
))
212 ec1
, ec2
= self
._create
_event
_classes
()
213 sc2
= bt2
.StreamClass(name
='my_stream_class', id=12,
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
,
217 event_classes
=(ec1
, ec2
))
218 self
.assertNotEqual(sc1
, sc2
)
220 def test_ne_event_header_field_class(self
):
221 ec1
, ec2
= self
._create
_event
_classes
()
222 sc1
= bt2
.StreamClass(name
='my_stream_class', id=12,
223 packet_context_field_class
=self
._packet
_context
_fc
,
224 event_context_field_class
=self
._event
_context
_fc
,
225 event_classes
=(ec1
, ec2
))
226 ec1
, ec2
= self
._create
_event
_classes
()
227 sc2
= bt2
.StreamClass(name
='my_stream_class', id=12,
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
,
231 event_classes
=(ec1
, ec2
))
232 self
.assertNotEqual(sc1
, sc2
)
234 def test_ne_event_context_field_class(self
):
235 ec1
, ec2
= self
._create
_event
_classes
()
236 sc1
= bt2
.StreamClass(name
='my_stream_class', id=12,
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
,
240 event_classes
=(ec1
, ec2
))
241 ec1
, ec2
= self
._create
_event
_classes
()
242 sc2
= bt2
.StreamClass(name
='my_stream_class', id=12,
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
,
246 event_classes
=(ec1
, ec2
))
247 self
.assertNotEqual(sc1
, sc2
)
249 def test_ne_event_class(self
):
250 ec1
, ec2
= self
._create
_event
_classes
()
251 sc1
= bt2
.StreamClass(name
='my_stream_class', id=12,
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
,
255 event_classes
=(ec1
,))
256 ec1
, ec2
= self
._create
_event
_classes
()
257 sc2
= bt2
.StreamClass(name
='my_stream_class', id=12,
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
,
261 event_classes
=(ec1
, ec2
))
262 self
.assertNotEqual(sc1
, sc2
)
264 def test_eq_invalid(self
):
265 self
.assertFalse(self
._sc
== 23)