bt2: Adapt test_message_iterator.py and make it pass
[babeltrace.git] / tests / bindings / python / bt2 / test_port.py
CommitLineData
811644b8 1import unittest
811644b8
PP
2import bt2
3
4
5class PortTestCase(unittest.TestCase):
6 @staticmethod
7 def _create_comp(comp_cls, name=None):
8 graph = bt2.Graph()
9
10 if name is None:
11 name = 'comp'
12
13 return graph.add_component(comp_cls, name)
14
15 def test_src_add_output_port(self):
5602ef81 16 class MyIter(bt2._UserMessageIterator):
811644b8
PP
17 def __next__(self):
18 raise bt2.Stop
19
20 class MySource(bt2._UserSourceComponent,
5602ef81 21 message_iterator_class=MyIter):
811644b8
PP
22 def __init__(comp_self, params):
23 port = comp_self._add_output_port('out')
24 self.assertEqual(port.name, 'out')
25
26 comp = self._create_comp(MySource)
27 self.assertEqual(len(comp.output_ports), 1)
28
811644b8 29 def test_flt_add_output_port(self):
5602ef81 30 class MyIter(bt2._UserMessageIterator):
811644b8
PP
31 def __next__(self):
32 raise bt2.Stop
33
34 class MyFilter(bt2._UserFilterComponent,
5602ef81 35 message_iterator_class=MyIter):
811644b8
PP
36 def __init__(comp_self, params):
37 port = comp_self._add_output_port('out')
38 self.assertEqual(port.name, 'out')
39
40 comp = self._create_comp(MyFilter)
41 self.assertEqual(len(comp.output_ports), 1)
42
43 def test_flt_add_input_port(self):
5602ef81 44 class MyIter(bt2._UserMessageIterator):
811644b8
PP
45 def __next__(self):
46 raise bt2.Stop
47
48 class MyFilter(bt2._UserFilterComponent,
5602ef81 49 message_iterator_class=MyIter):
811644b8
PP
50 def __init__(comp_self, params):
51 port = comp_self._add_input_port('in')
52 self.assertEqual(port.name, 'in')
53
54 comp = self._create_comp(MyFilter)
55 self.assertEqual(len(comp.input_ports), 1)
56
57 def test_sink_add_input_port(self):
58 class MySink(bt2._UserSinkComponent):
59 def __init__(comp_self, params):
60 port = comp_self._add_input_port('in')
61 self.assertEqual(port.name, 'in')
62
63 def _consume(self):
64 pass
65
66 comp = self._create_comp(MySink)
67 self.assertEqual(len(comp.input_ports), 1)
68
69 def test_user_src_output_ports_getitem(self):
5602ef81 70 class MyIter(bt2._UserMessageIterator):
811644b8
PP
71 def __next__(self):
72 raise bt2.Stop
73
74 class MySource(bt2._UserSourceComponent,
5602ef81 75 message_iterator_class=MyIter):
811644b8
PP
76 def __init__(comp_self, params):
77 port1 = comp_self._add_output_port('clear')
78 port2 = comp_self._add_output_port('print')
79 port3 = comp_self._add_output_port('insert')
80 self.assertEqual(port3.addr, comp_self._output_ports['insert'].addr)
81 self.assertEqual(port2.addr, comp_self._output_ports['print'].addr)
82 self.assertEqual(port1.addr, comp_self._output_ports['clear'].addr)
83
894a8df5 84 self._create_comp(MySource)
811644b8
PP
85
86 def test_user_flt_output_ports_getitem(self):
5602ef81 87 class MyIter(bt2._UserMessageIterator):
811644b8
PP
88 def __next__(self):
89 raise bt2.Stop
90
91 class MyFilter(bt2._UserFilterComponent,
5602ef81 92 message_iterator_class=MyIter):
811644b8
PP
93 def __init__(comp_self, params):
94 port1 = comp_self._add_output_port('clear')
95 port2 = comp_self._add_output_port('print')
96 port3 = comp_self._add_output_port('insert')
97 self.assertEqual(port3.addr, comp_self._output_ports['insert'].addr)
98 self.assertEqual(port2.addr, comp_self._output_ports['print'].addr)
99 self.assertEqual(port1.addr, comp_self._output_ports['clear'].addr)
100
894a8df5 101 self._create_comp(MyFilter)
811644b8
PP
102
103 def test_user_flt_input_ports_getitem(self):
5602ef81 104 class MyIter(bt2._UserMessageIterator):
811644b8
PP
105 def __next__(self):
106 raise bt2.Stop
107
108 class MyFilter(bt2._UserFilterComponent,
5602ef81 109 message_iterator_class=MyIter):
811644b8
PP
110 def __init__(comp_self, params):
111 port1 = comp_self._add_input_port('clear')
112 port2 = comp_self._add_input_port('print')
113 port3 = comp_self._add_input_port('insert')
114 self.assertEqual(port3.addr, comp_self._input_ports['insert'].addr)
115 self.assertEqual(port2.addr, comp_self._input_ports['print'].addr)
116 self.assertEqual(port1.addr, comp_self._input_ports['clear'].addr)
117
894a8df5 118 self._create_comp(MyFilter)
811644b8
PP
119
120 def test_user_sink_input_ports_getitem(self):
121 class MySink(bt2._UserSinkComponent):
122 def __init__(comp_self, params):
123 port1 = comp_self._add_input_port('clear')
124 port2 = comp_self._add_input_port('print')
125 port3 = comp_self._add_input_port('insert')
126 self.assertEqual(port3.addr, comp_self._input_ports['insert'].addr)
127 self.assertEqual(port2.addr, comp_self._input_ports['print'].addr)
128 self.assertEqual(port1.addr, comp_self._input_ports['clear'].addr)
129
130 def _consume(self):
131 pass
132
894a8df5 133 self._create_comp(MySink)
811644b8
PP
134
135 def test_user_src_output_ports_getitem_invalid_key(self):
5602ef81 136 class MyIter(bt2._UserMessageIterator):
811644b8
PP
137 def __next__(self):
138 raise bt2.Stop
139
140 class MySource(bt2._UserSourceComponent,
5602ef81 141 message_iterator_class=MyIter):
811644b8
PP
142 def __init__(comp_self, params):
143 comp_self._add_output_port('clear')
144 comp_self._add_output_port('print')
145 comp_self._add_output_port('insert')
146
147 with self.assertRaises(KeyError):
148 comp_self._output_ports['hello']
149
894a8df5 150 self._create_comp(MySource)
811644b8
PP
151
152 def test_user_flt_output_ports_getitem_invalid_key(self):
5602ef81 153 class MyIter(bt2._UserMessageIterator):
811644b8
PP
154 def __next__(self):
155 raise bt2.Stop
156
157 class MyFilter(bt2._UserFilterComponent,
5602ef81 158 message_iterator_class=MyIter):
811644b8
PP
159 def __init__(comp_self, params):
160 comp_self._add_output_port('clear')
161 comp_self._add_output_port('print')
162 comp_self._add_output_port('insert')
163
164 with self.assertRaises(KeyError):
165 comp_self._output_ports['hello']
166
894a8df5 167 self._create_comp(MyFilter)
811644b8
PP
168
169 def test_user_flt_input_ports_getitem_invalid_key(self):
5602ef81 170 class MyIter(bt2._UserMessageIterator):
811644b8
PP
171 def __next__(self):
172 raise bt2.Stop
173
174 class MyFilter(bt2._UserFilterComponent,
5602ef81 175 message_iterator_class=MyIter):
811644b8
PP
176 def __init__(comp_self, params):
177 comp_self._add_input_port('clear')
178 comp_self._add_input_port('print')
179 comp_self._add_input_port('insert')
180
181 with self.assertRaises(KeyError):
182 comp_self._input_ports['hello']
183
894a8df5 184 self._create_comp(MyFilter)
811644b8
PP
185
186 def test_user_sink_input_ports_getitem_invalid_key(self):
187 class MySink(bt2._UserSinkComponent):
188 def __init__(comp_self, params):
189 comp_self._add_input_port('clear')
190 comp_self._add_input_port('print')
191 comp_self._add_input_port('insert')
192
193 with self.assertRaises(KeyError):
194 comp_self._input_ports['hello']
195
196 def _consume(self):
197 pass
198
894a8df5 199 self._create_comp(MySink)
811644b8
PP
200
201 def test_user_src_output_ports_len(self):
5602ef81 202 class MyIter(bt2._UserMessageIterator):
811644b8
PP
203 def __next__(self):
204 raise bt2.Stop
205
206 class MySource(bt2._UserSourceComponent,
5602ef81 207 message_iterator_class=MyIter):
811644b8
PP
208 def __init__(comp_self, params):
209 comp_self._add_output_port('clear')
210 comp_self._add_output_port('print')
211 comp_self._add_output_port('insert')
212 self.assertEqual(len(comp_self._output_ports), 3)
213
894a8df5 214 self._create_comp(MySource)
811644b8
PP
215
216 def test_user_flt_output_ports_len(self):
5602ef81 217 class MyIter(bt2._UserMessageIterator):
811644b8
PP
218 def __next__(self):
219 raise bt2.Stop
220
221 class MyFilter(bt2._UserFilterComponent,
5602ef81 222 message_iterator_class=MyIter):
811644b8
PP
223 def __init__(comp_self, params):
224 comp_self._add_output_port('clear')
225 comp_self._add_output_port('print')
226 comp_self._add_output_port('insert')
227 self.assertEqual(len(comp_self._output_ports), 3)
228
894a8df5 229 self._create_comp(MyFilter)
811644b8
PP
230
231 def test_user_flt_input_ports_len(self):
5602ef81 232 class MyIter(bt2._UserMessageIterator):
811644b8
PP
233 def __next__(self):
234 raise bt2.Stop
235
236 class MyFilter(bt2._UserFilterComponent,
5602ef81 237 message_iterator_class=MyIter):
811644b8
PP
238 def __init__(comp_self, params):
239 comp_self._add_input_port('clear')
240 comp_self._add_input_port('print')
241 comp_self._add_input_port('insert')
242 self.assertEqual(len(comp_self._input_ports), 3)
243
894a8df5 244 self._create_comp(MyFilter)
811644b8
PP
245
246 def test_user_sink_input_ports_len(self):
247 class MySink(bt2._UserSinkComponent):
248 def __init__(comp_self, params):
249 comp_self._add_input_port('clear')
250 comp_self._add_input_port('print')
251 comp_self._add_input_port('insert')
252 self.assertEqual(len(comp_self._input_ports), 3)
253
254 def _consume(self):
255 pass
256
894a8df5 257 self._create_comp(MySink)
811644b8
PP
258
259 def test_user_src_output_ports_iter(self):
5602ef81 260 class MyIter(bt2._UserMessageIterator):
811644b8
PP
261 def __next__(self):
262 raise bt2.Stop
263
264 class MySource(bt2._UserSourceComponent,
5602ef81 265 message_iterator_class=MyIter):
811644b8
PP
266 def __init__(comp_self, params):
267 port1 = comp_self._add_output_port('clear')
268 port2 = comp_self._add_output_port('print')
269 port3 = comp_self._add_output_port('insert')
270 ports = []
271
272 for port_name, port in comp_self._output_ports.items():
273 ports.append((port_name, port))
274
275 self.assertEqual(ports[0][0], 'clear')
276 self.assertEqual(ports[0][1].addr, port1.addr)
277 self.assertEqual(ports[1][0], 'print')
278 self.assertEqual(ports[1][1].addr, port2.addr)
279 self.assertEqual(ports[2][0], 'insert')
280 self.assertEqual(ports[2][1].addr, port3.addr)
281
894a8df5 282 self._create_comp(MySource)
811644b8
PP
283
284 def test_user_flt_output_ports_iter(self):
5602ef81 285 class MyIter(bt2._UserMessageIterator):
811644b8
PP
286 def __next__(self):
287 raise bt2.Stop
288
289 class MyFilter(bt2._UserFilterComponent,
5602ef81 290 message_iterator_class=MyIter):
811644b8
PP
291 def __init__(comp_self, params):
292 port1 = comp_self._add_output_port('clear')
293 port2 = comp_self._add_output_port('print')
294 port3 = comp_self._add_output_port('insert')
295 ports = []
296
297 for port_name, port in comp_self._output_ports.items():
298 ports.append((port_name, port))
299
300 self.assertEqual(ports[0][0], 'clear')
301 self.assertEqual(ports[0][1].addr, port1.addr)
302 self.assertEqual(ports[1][0], 'print')
303 self.assertEqual(ports[1][1].addr, port2.addr)
304 self.assertEqual(ports[2][0], 'insert')
305 self.assertEqual(ports[2][1].addr, port3.addr)
306
894a8df5 307 self._create_comp(MyFilter)
811644b8
PP
308
309 def test_user_flt_input_ports_iter(self):
5602ef81 310 class MyIter(bt2._UserMessageIterator):
811644b8
PP
311 def __next__(self):
312 raise bt2.Stop
313
314 class MyFilter(bt2._UserFilterComponent,
5602ef81 315 message_iterator_class=MyIter):
811644b8
PP
316 def __init__(comp_self, params):
317 port1 = comp_self._add_input_port('clear')
318 port2 = comp_self._add_input_port('print')
319 port3 = comp_self._add_input_port('insert')
320 ports = []
321
322 for port_name, port in comp_self._input_ports.items():
323 ports.append((port_name, port))
324
325 self.assertEqual(ports[0][0], 'clear')
326 self.assertEqual(ports[0][1].addr, port1.addr)
327 self.assertEqual(ports[1][0], 'print')
328 self.assertEqual(ports[1][1].addr, port2.addr)
329 self.assertEqual(ports[2][0], 'insert')
330 self.assertEqual(ports[2][1].addr, port3.addr)
331
894a8df5 332 self._create_comp(MyFilter)
811644b8
PP
333
334 def test_user_sink_input_ports_iter(self):
335 class MySink(bt2._UserSinkComponent):
336 def __init__(comp_self, params):
337 port1 = comp_self._add_input_port('clear')
338 port2 = comp_self._add_input_port('print')
339 port3 = comp_self._add_input_port('insert')
340 ports = []
341
342 for port_name, port in comp_self._input_ports.items():
343 ports.append((port_name, port))
344
345 self.assertEqual(ports[0][0], 'clear')
346 self.assertEqual(ports[0][1].addr, port1.addr)
347 self.assertEqual(ports[1][0], 'print')
348 self.assertEqual(ports[1][1].addr, port2.addr)
349 self.assertEqual(ports[2][0], 'insert')
350 self.assertEqual(ports[2][1].addr, port3.addr)
351
352 def _consume(self):
353 pass
354
894a8df5 355 self._create_comp(MySink)
811644b8
PP
356
357 def test_gen_src_output_ports_getitem(self):
5602ef81 358 class MyIter(bt2._UserMessageIterator):
811644b8
PP
359 def __next__(self):
360 raise bt2.Stop
361
362 port1 = None
363 port2 = None
364 port3 = None
365
366 class MySource(bt2._UserSourceComponent,
5602ef81 367 message_iterator_class=MyIter):
811644b8
PP
368 def __init__(comp_self, params):
369 nonlocal port1, port2, port3
370 port1 = comp_self._add_output_port('clear')
371 port2 = comp_self._add_output_port('print')
372 port3 = comp_self._add_output_port('insert')
373
374 comp = self._create_comp(MySource)
375 self.assertEqual(port3.addr, comp.output_ports['insert'].addr)
376 self.assertEqual(port2.addr, comp.output_ports['print'].addr)
377 self.assertEqual(port1.addr, comp.output_ports['clear'].addr)
378 del port1
379 del port2
380 del port3
381
382 def test_gen_flt_output_ports_getitem(self):
5602ef81 383 class MyIter(bt2._UserMessageIterator):
811644b8
PP
384 def __next__(self):
385 raise bt2.Stop
386
387 port1 = None
388 port2 = None
389 port3 = None
390
391 class MyFilter(bt2._UserFilterComponent,
5602ef81 392 message_iterator_class=MyIter):
811644b8
PP
393 def __init__(comp_self, params):
394 nonlocal port1, port2, port3
395 port1 = comp_self._add_output_port('clear')
396 port2 = comp_self._add_output_port('print')
397 port3 = comp_self._add_output_port('insert')
398
399 comp = self._create_comp(MyFilter)
400 self.assertEqual(port3.addr, comp.output_ports['insert'].addr)
401 self.assertEqual(port2.addr, comp.output_ports['print'].addr)
402 self.assertEqual(port1.addr, comp.output_ports['clear'].addr)
403 del port1
404 del port2
405 del port3
406
407 def test_gen_flt_input_ports_getitem(self):
5602ef81 408 class MyIter(bt2._UserMessageIterator):
811644b8
PP
409 def __next__(self):
410 raise bt2.Stop
411
412 port1 = None
413 port2 = None
414 port3 = None
415
416 class MyFilter(bt2._UserFilterComponent,
5602ef81 417 message_iterator_class=MyIter):
811644b8
PP
418 def __init__(comp_self, params):
419 nonlocal port1, port2, port3
420 port1 = comp_self._add_input_port('clear')
421 port2 = comp_self._add_input_port('print')
422 port3 = comp_self._add_input_port('insert')
423
424 comp = self._create_comp(MyFilter)
425 self.assertEqual(port3.addr, comp.input_ports['insert'].addr)
426 self.assertEqual(port2.addr, comp.input_ports['print'].addr)
427 self.assertEqual(port1.addr, comp.input_ports['clear'].addr)
428 del port1
429 del port2
430 del port3
431
432 def test_gen_sink_input_ports_getitem(self):
433 port1 = None
434 port2 = None
435 port3 = None
436
437 class MySink(bt2._UserSinkComponent):
438 def __init__(comp_self, params):
439 nonlocal port1, port2, port3
440 port1 = comp_self._add_input_port('clear')
441 port2 = comp_self._add_input_port('print')
442 port3 = comp_self._add_input_port('insert')
443
444 def _consume(self):
445 pass
446
447 comp = self._create_comp(MySink)
448 self.assertEqual(port3.addr, comp.input_ports['insert'].addr)
449 self.assertEqual(port2.addr, comp.input_ports['print'].addr)
450 self.assertEqual(port1.addr, comp.input_ports['clear'].addr)
451 del port1
452 del port2
453 del port3
454
455 def test_gen_src_output_ports_getitem_invalid_key(self):
5602ef81 456 class MyIter(bt2._UserMessageIterator):
811644b8
PP
457 def __next__(self):
458 raise bt2.Stop
459
460 class MySource(bt2._UserSourceComponent,
5602ef81 461 message_iterator_class=MyIter):
811644b8
PP
462 def __init__(comp_self, params):
463 comp_self._add_output_port('clear')
464 comp_self._add_output_port('print')
465 comp_self._add_output_port('insert')
466
467 comp = self._create_comp(MySource)
468
469 with self.assertRaises(KeyError):
470 comp.output_ports['hello']
471
472 def test_gen_flt_output_ports_getitem_invalid_key(self):
5602ef81 473 class MyIter(bt2._UserMessageIterator):
811644b8
PP
474 def __next__(self):
475 raise bt2.Stop
476
477 class MyFilter(bt2._UserFilterComponent,
5602ef81 478 message_iterator_class=MyIter):
811644b8
PP
479 def __init__(comp_self, params):
480 comp_self._add_output_port('clear')
481 comp_self._add_output_port('print')
482 comp_self._add_output_port('insert')
483
484 comp = self._create_comp(MyFilter)
485
486 with self.assertRaises(KeyError):
487 comp.output_ports['hello']
488
489 def test_gen_flt_input_ports_getitem_invalid_key(self):
5602ef81 490 class MyIter(bt2._UserMessageIterator):
811644b8
PP
491 def __next__(self):
492 raise bt2.Stop
493
494 class MyFilter(bt2._UserFilterComponent,
5602ef81 495 message_iterator_class=MyIter):
811644b8
PP
496 def __init__(comp_self, params):
497 comp_self._add_input_port('clear')
498 comp_self._add_input_port('print')
499 comp_self._add_input_port('insert')
500
501 comp = self._create_comp(MyFilter)
502
503 with self.assertRaises(KeyError):
504 comp.input_ports['hello']
505
506 def test_gen_sink_input_ports_getitem_invalid_key(self):
507 class MySink(bt2._UserSinkComponent):
508 def __init__(comp_self, params):
509 comp_self._add_input_port('clear')
510 comp_self._add_input_port('print')
511 comp_self._add_input_port('insert')
512
513 with self.assertRaises(KeyError):
514 comp_self._input_ports['hello']
515
516 def _consume(self):
517 pass
518
519 comp = self._create_comp(MySink)
520
521 with self.assertRaises(KeyError):
522 comp.input_ports['hello']
523
524 def test_gen_src_output_ports_len(self):
5602ef81 525 class MyIter(bt2._UserMessageIterator):
811644b8
PP
526 def __next__(self):
527 raise bt2.Stop
528
529 class MySource(bt2._UserSourceComponent,
5602ef81 530 message_iterator_class=MyIter):
811644b8
PP
531 def __init__(comp_self, params):
532 comp_self._add_output_port('clear')
533 comp_self._add_output_port('print')
534 comp_self._add_output_port('insert')
535
536 comp = self._create_comp(MySource)
537 self.assertEqual(len(comp.output_ports), 3)
538
539 def test_gen_flt_output_ports_len(self):
5602ef81 540 class MyIter(bt2._UserMessageIterator):
811644b8
PP
541 def __next__(self):
542 raise bt2.Stop
543
544 class MyFilter(bt2._UserFilterComponent,
5602ef81 545 message_iterator_class=MyIter):
811644b8
PP
546 def __init__(comp_self, params):
547 comp_self._add_output_port('clear')
548 comp_self._add_output_port('print')
549 comp_self._add_output_port('insert')
550
551 comp = self._create_comp(MyFilter)
552 self.assertEqual(len(comp.output_ports), 3)
553
554 def test_gen_flt_input_ports_len(self):
5602ef81 555 class MyIter(bt2._UserMessageIterator):
811644b8
PP
556 def __next__(self):
557 raise bt2.Stop
558
559 class MyFilter(bt2._UserFilterComponent,
5602ef81 560 message_iterator_class=MyIter):
811644b8
PP
561 def __init__(comp_self, params):
562 comp_self._add_input_port('clear')
563 comp_self._add_input_port('print')
564 comp_self._add_input_port('insert')
565
566 comp = self._create_comp(MyFilter)
567 self.assertEqual(len(comp.input_ports), 3)
568
569 def test_gen_sink_input_ports_len(self):
570 class MySink(bt2._UserSinkComponent):
571 def __init__(comp_self, params):
572 comp_self._add_input_port('clear')
573 comp_self._add_input_port('print')
574 comp_self._add_input_port('insert')
575
576 def _consume(self):
577 pass
578
579 comp = self._create_comp(MySink)
580 self.assertEqual(len(comp.input_ports), 3)
581
582 def test_gen_src_output_ports_iter(self):
5602ef81 583 class MyIter(bt2._UserMessageIterator):
811644b8
PP
584 def __next__(self):
585 raise bt2.Stop
586
587 port1 = None
588 port2 = None
589 port3 = None
590
591 class MySource(bt2._UserSourceComponent,
5602ef81 592 message_iterator_class=MyIter):
811644b8
PP
593 def __init__(comp_self, params):
594 nonlocal port1, port2, port3
595 port1 = comp_self._add_output_port('clear')
596 port2 = comp_self._add_output_port('print')
597 port3 = comp_self._add_output_port('insert')
598
599 comp = self._create_comp(MySource)
600 ports = []
601
602 for port_name, port in comp.output_ports.items():
603 ports.append((port_name, port))
604
605 self.assertEqual(ports[0][0], 'clear')
606 self.assertEqual(ports[0][1].addr, port1.addr)
607 self.assertEqual(ports[1][0], 'print')
608 self.assertEqual(ports[1][1].addr, port2.addr)
609 self.assertEqual(ports[2][0], 'insert')
610 self.assertEqual(ports[2][1].addr, port3.addr)
611 del port1
612 del port2
613 del port3
614
615 def test_gen_flt_output_ports_iter(self):
5602ef81 616 class MyIter(bt2._UserMessageIterator):
811644b8
PP
617 def __next__(self):
618 raise bt2.Stop
619
620 port1 = None
621 port2 = None
622 port3 = None
623
624 class MyFilter(bt2._UserFilterComponent,
5602ef81 625 message_iterator_class=MyIter):
811644b8
PP
626 def __init__(comp_self, params):
627 nonlocal port1, port2, port3
628 port1 = comp_self._add_output_port('clear')
629 port2 = comp_self._add_output_port('print')
630 port3 = comp_self._add_output_port('insert')
631
632 comp = self._create_comp(MyFilter)
633 ports = []
634
635 for port_name, port in comp.output_ports.items():
636 ports.append((port_name, port))
637
638 self.assertEqual(ports[0][0], 'clear')
639 self.assertEqual(ports[0][1].addr, port1.addr)
640 self.assertEqual(ports[1][0], 'print')
641 self.assertEqual(ports[1][1].addr, port2.addr)
642 self.assertEqual(ports[2][0], 'insert')
643 self.assertEqual(ports[2][1].addr, port3.addr)
644 del port1
645 del port2
646 del port3
647
648 def test_gen_flt_input_ports_iter(self):
5602ef81 649 class MyIter(bt2._UserMessageIterator):
811644b8
PP
650 def __next__(self):
651 raise bt2.Stop
652
653 port1 = None
654 port2 = None
655 port3 = None
656
657 class MyFilter(bt2._UserFilterComponent,
5602ef81 658 message_iterator_class=MyIter):
811644b8
PP
659 def __init__(comp_self, params):
660 nonlocal port1, port2, port3
661 port1 = comp_self._add_input_port('clear')
662 port2 = comp_self._add_input_port('print')
663 port3 = comp_self._add_input_port('insert')
664
665 comp = self._create_comp(MyFilter)
666 ports = []
667
668 for port_name, port in comp.input_ports.items():
669 ports.append((port_name, port))
670
671 self.assertEqual(ports[0][0], 'clear')
672 self.assertEqual(ports[0][1].addr, port1.addr)
673 self.assertEqual(ports[1][0], 'print')
674 self.assertEqual(ports[1][1].addr, port2.addr)
675 self.assertEqual(ports[2][0], 'insert')
676 self.assertEqual(ports[2][1].addr, port3.addr)
677 del port1
678 del port2
679 del port3
680
681 def test_gen_sink_input_ports_iter(self):
682 port1 = None
683 port2 = None
684 port3 = None
685
686 class MySink(bt2._UserSinkComponent):
687 def __init__(comp_self, params):
688 nonlocal port1, port2, port3
689 port1 = comp_self._add_input_port('clear')
690 port2 = comp_self._add_input_port('print')
691 port3 = comp_self._add_input_port('insert')
692
693 def _consume(self):
694 pass
695
696 comp = self._create_comp(MySink)
697 ports = []
698
699 for port_name, port in comp.input_ports.items():
700 ports.append((port_name, port))
701
702 self.assertEqual(ports[0][0], 'clear')
703 self.assertEqual(ports[0][1].addr, port1.addr)
704 self.assertEqual(ports[1][0], 'print')
705 self.assertEqual(ports[1][1].addr, port2.addr)
706 self.assertEqual(ports[2][0], 'insert')
707 self.assertEqual(ports[2][1].addr, port3.addr)
708 del port1
709 del port2
710 del port3
711
712 def test_name(self):
713 class MySink(bt2._UserSinkComponent):
714 def __init__(comp_self, params):
715 comp_self._add_input_port('clear')
716
717 def _consume(self):
718 pass
719
720 comp = self._create_comp(MySink)
721 self.assertEqual(comp.input_ports['clear'].name, 'clear')
722
811644b8
PP
723 def test_connection_none(self):
724 class MySink(bt2._UserSinkComponent):
725 def __init__(comp_self, params):
726 comp_self._add_input_port('clear')
727
728 def _consume(self):
729 pass
730
731 comp = self._create_comp(MySink)
732 self.assertIsNone(comp.input_ports['clear'].connection)
733
734 def test_is_connected_false(self):
735 class MySink(bt2._UserSinkComponent):
736 def __init__(comp_self, params):
737 comp_self._add_input_port('clear')
738
739 def _consume(self):
740 pass
741
742 comp = self._create_comp(MySink)
743 self.assertFalse(comp.input_ports['clear'].is_connected)
744
894a8df5 745 def test_self_name(self):
811644b8
PP
746 class MySink(bt2._UserSinkComponent):
747 def __init__(comp_self, params):
748 port = comp_self._add_input_port('clear')
749 self.assertEqual(port.name, 'clear')
750
751 def _consume(self):
752 pass
753
894a8df5 754 self._create_comp(MySink)
811644b8 755
894a8df5 756 def test_self_connection_none(self):
811644b8
PP
757 class MySink(bt2._UserSinkComponent):
758 def __init__(comp_self, params):
759 port = comp_self._add_input_port('clear')
760 self.assertIsNone(port.connection)
761
762 def _consume(self):
763 pass
764
894a8df5 765 self._create_comp(MySink)
811644b8 766
894a8df5 767 def test_self_is_connected_false(self):
811644b8
PP
768 class MySink(bt2._UserSinkComponent):
769 def __init__(comp_self, params):
770 port = comp_self._add_input_port('clear')
771 self.assertFalse(port.is_connected)
772
773 def _consume(self):
774 pass
775
894a8df5 776 self._create_comp(MySink)
This page took 0.059383 seconds and 4 git commands to generate.