Lines Matching full:event

2 # BitBake Tests for the Event implementation (event.py)
20 import bb.event
30 def _store_event_data_string(self, event): argument
31 if isinstance(event, logging.LogRecord):
33 self.event_calls.append(formatter.format(event))
35 self.event_calls.append(bb.event.getName(event))
40 """ Class used as specification for UI event handler queue stub objects """
44 def send(self, event): argument
45 super(EventQueueStub, self)._store_event_data_string(event)
49 """ Class used as specification for UI event handler queue stub objects
55 event = pickle.loads(pickled_event)
56 super(PickleEventQueueStub, self)._store_event_data_string(event)
60 """ Class used as specification for UI event handler stub objects """
62 self.event = None
66 """ Event handling test class """
75 importlib.reload(bb.event)
87 bb.event.set_class_handlers(test_handlers)
89 bb.event.get_class_handlers())
94 bb.event.set_handlers(test_handlers)
96 bb.event.get_handlers())
102 bb.event.clean_class_handlers())
106 result = bb.event.register("handler", self._test_process.handler)
107 self.assertEqual(result, bb.event.Registered)
108 handlers_dict = bb.event.get_class_handlers()
113 bb.event.register("handler", self._test_process.handler)
114 handlers_dict = bb.event.get_class_handlers()
116 result = bb.event.register("handler", self._test_process.handler)
117 self.assertEqual(result, bb.event.AlreadyRegistered)
121 result = bb.event.register("string_handler", " return True")
122 self.assertEqual(result, bb.event.Registered)
123 handlers_dict = bb.event.get_class_handlers()
127 """ Test register method with event masking """
128 mask = ["bb.event.OperationStarted",
129 "bb.event.OperationCompleted"]
130 result = bb.event.register("event_handler",
133 self.assertEqual(result, bb.event.Registered)
134 handlers_dict = bb.event.get_class_handlers()
140 bb.event.set_class_handlers(test_handlers)
142 bb.event.remove("handler1", None)
143 test_handlers = bb.event.get_class_handlers()
146 bb.event.remove("handler1", None)
150 mask = ["bb.event.OperationProgress"]
151 result = bb.event.register("event_handler",
154 self.assertEqual(result, bb.event.Registered)
155 event = bb.event.OperationProgress(current=10, total=100)
156 bb.event.execute_handler("event_handler",
158 event,
160 self._test_process.event_handler.assert_called_once_with(event)
164 mask = ["bb.event.OperationStarted"]
165 result = bb.event.register("event_handler1",
168 self.assertEqual(result, bb.event.Registered)
169 result = bb.event.register("event_handler2",
172 self.assertEqual(result, bb.event.Registered)
173 event1 = bb.event.OperationStarted()
174 event2 = bb.event.OperationCompleted(total=123)
175 bb.event.fire_class_handlers(event1, None)
176 bb.event.fire_class_handlers(event2, None)
177 bb.event.fire_class_handlers(event2, None)
189 mask = ["bb.event.OperationStarted"]
190 result = bb.event.register("event_handler1",
193 self.assertEqual(result, bb.event.Registered)
194 result = bb.event.register("event_handler2",
197 self.assertEqual(result, bb.event.Registered)
198 bb.event.set_eventfilter(
199 lambda name, handler, event, d :
201 bb.event.getName(event) == "OperationStarted")
202 event1 = bb.event.OperationStarted()
203 event2 = bb.event.OperationCompleted(total=123)
204 bb.event.fire_class_handlers(event1, None)
205 bb.event.fire_class_handlers(event2, None)
206 bb.event.fire_class_handlers(event2, None)
215 """ Test changing the event mapping for class handlers """
216 event1 = bb.event.OperationStarted()
217 event2 = bb.event.OperationCompleted(total=123)
220 result = bb.event.register("event_handler1",
223 self.assertEqual(result, bb.event.Registered)
224 bb.event.fire_class_handlers(event1, None)
225 bb.event.fire_class_handlers(event2, None)
231 bb.event.remove("event_handler1",
233 mask = ["bb.event.OperationStarted"]
234 result = bb.event.register("event_handler1",
237 self.assertEqual(result, bb.event.Registered)
238 bb.event.fire_class_handlers(event1, None)
239 bb.event.fire_class_handlers(event2, None)
245 bb.event.remove("event_handler1",
247 mask = ["bb.event.OperationCompleted"]
248 result = bb.event.register("event_handler1",
251 self.assertEqual(result, bb.event.Registered)
252 bb.event.fire_class_handlers(event1, None)
253 bb.event.fire_class_handlers(event2, None)
260 result = bb.event.register_UIHhandler(self._test_ui1, mainui=True)
265 result = bb.event.register_UIHhandler(self._test_ui1, mainui=True)
267 result = bb.event.register_UIHhandler(self._test_ui1, mainui=True)
272 result = bb.event.register_UIHhandler(self._test_ui1, mainui=True)
274 result = bb.event.unregister_UIHhandler(1)
279 self._test_ui1.event = Mock(spec_set=EventQueueStub)
280 result = bb.event.register_UIHhandler(self._test_ui1, mainui=True)
282 self._test_ui2.event = Mock(spec_set=PickleEventQueueStub)
283 result = bb.event.register_UIHhandler(self._test_ui2, mainui=True)
285 event1 = bb.event.OperationStarted()
286 bb.event.fire_ui_handlers(event1, None)
288 self.assertEqual(self._test_ui1.event.send.call_args_list,
291 self.assertEqual(self._test_ui2.event.sendpickle.call_args_list,
296 mask = ["bb.event.OperationStarted"]
298 self._test_ui1.event = Mock(spec_set=EventQueueStub)
299 result = bb.event.register_UIHhandler(self._test_ui1, mainui=True)
300 bb.event.set_UIHmask(result, logging.INFO, debug_domains, mask)
301 self._test_ui2.event = Mock(spec_set=PickleEventQueueStub)
302 result = bb.event.register_UIHhandler(self._test_ui2, mainui=True)
303 bb.event.set_UIHmask(result, logging.INFO, debug_domains, mask)
305 event1 = bb.event.OperationStarted()
306 event2 = bb.event.OperationCompleted(total=1)
308 bb.event.fire_ui_handlers(event1, None)
309 bb.event.fire_ui_handlers(event2, None)
311 self.assertEqual(self._test_ui1.event.send.call_args_list,
314 self.assertEqual(self._test_ui2.event.sendpickle.call_args_list,
322 self._test_ui1.event = EventQueueStub()
323 result = bb.event.register_UIHhandler(self._test_ui1, mainui=True)
324 bb.event.set_UIHmask(result, logging.ERROR, debug_domains, mask)
325 self._test_ui2.event = PickleEventQueueStub()
326 result = bb.event.register_UIHhandler(self._test_ui2, mainui=True)
327 bb.event.set_UIHmask(result, logging.ERROR, debug_domains, mask)
329 event1 = bb.event.OperationStarted()
330 bb.event.fire_ui_handlers(event1, None) # All events match
332 event_log_handler = bb.event.LogHandler()
346 self.assertEqual(self._test_ui1.event.event_calls, expected)
347 self.assertEqual(self._test_ui2.event.event_calls, expected)
350 """ Test fire method used to trigger class and ui event handlers """
351 mask = ["bb.event.ConfigParsed"]
352 result = bb.event.register("event_handler1",
356 self._test_ui1.event = Mock(spec_set=EventQueueStub)
357 result = bb.event.register_UIHhandler(self._test_ui1, mainui=True)
360 event1 = bb.event.ConfigParsed()
361 bb.event.fire(event1, None)
365 self.assertEqual(self._test_ui1.event.send.call_args_list,
370 self._test_ui1.event = Mock(spec_set=EventQueueStub)
371 result = bb.event.register_UIHhandler(self._test_ui1, mainui=True)
373 event1 = bb.event.ConfigParsed()
374 bb.event.fire_from_worker(event1, None)
376 self.assertEqual(self._test_ui1.event.send.call_args_list,
380 """ Test the triggering of bb.event.worker_fire callback """
381 bb.event.worker_fire = Mock()
382 event = bb.event.Event()
383 bb.event.fire(event, None)
384 expected = [call(event, None)]
385 self.assertEqual(bb.event.worker_fire.call_args_list, expected)
389 event1 = bb.event.OperationStarted()
390 event2 = bb.event.OperationCompleted(total=123)
391 bb.event.fire(event1, None)
392 bb.event.fire(event2, None)
393 event_log_handler = bb.event.LogHandler()
399 bb.event.print_ui_queue()
406 """ Create UI event handler mockups used in enable and disable
408 def ui1_event_send(event): argument
409 if type(event) is bb.event.ConfigParsed:
411 if type(event) is bb.event.OperationStarted:
415 def ui2_event_send(event): argument
416 if type(event) is bb.event.ConfigParsed:
418 if type(event) is bb.event.OperationStarted:
423 self._test_ui1.event = EventQueueStub()
424 self._test_ui1.event.send = ui1_event_send
425 result = bb.event.register_UIHhandler(self._test_ui1, mainui=True)
427 self._test_ui2.event = EventQueueStub()
428 self._test_ui2.event.send = ui2_event_send
429 result = bb.event.register_UIHhandler(self._test_ui2, mainui=True)
444 """ First worker used to fire the ConfigParsed event for enable and
446 bb.event.fire(bb.event.ConfigParsed(), None)
449 """ Second worker used to fire the OperationStarted event for enable
451 bb.event.fire(bb.event.OperationStarted(), None)
456 bb.event.enable_threadlock()
459 # handlers for the event coming from the first worker should be
460 # called before processing the event from the second worker.
468 bb.event.disable_threadlock()
471 # delay in the registered handlers for the event coming from the first
472 # worker, the event coming from the second worker starts being
473 # processed before finishing handling the first worker event.
479 """ Event classes test class """
484 bb.event.worker_pid = EventClassesTest._worker_pid
487 """ Test the Event base class """
488 event = bb.event.Event()
489 self.assertEqual(event.pid, EventClassesTest._worker_pid)
494 event = bb.event.HeartbeatEvent(time)
495 self.assertEqual(event.time, time)
496 self.assertEqual(event.pid, EventClassesTest._worker_pid)
499 """ Test OperationStarted event class """
501 event = bb.event.OperationStarted(msg)
502 self.assertEqual(event.msg, msg)
503 self.assertEqual(event.pid, EventClassesTest._worker_pid)
506 """ Test OperationCompleted event class """
509 event = bb.event.OperationCompleted(total, msg)
510 self.assertEqual(event.msg, msg)
511 self.assertEqual(event.total, total)
512 self.assertEqual(event.pid, EventClassesTest._worker_pid)
515 """ Test OperationProgress event class """
519 event = bb.event.OperationProgress(current, total, msg)
520 self.assertEqual(event.msg, msg + ": %s/%s" % (current, total))
521 self.assertEqual(event.pid, EventClassesTest._worker_pid)
525 event = bb.event.ConfigParsed()
526 self.assertEqual(event.pid, EventClassesTest._worker_pid)
529 """ Test MultiConfigParsed event class """
531 event = bb.event.MultiConfigParsed(mcdata)
532 self.assertEqual(event.mcdata, mcdata)
533 self.assertEqual(event.pid, EventClassesTest._worker_pid)
536 """ Test RecipeEvent event base class """
538 event = bb.event.RecipeEvent(callback)
539 self.assertEqual(event.fn(1), callback(1))
540 self.assertEqual(event.pid, EventClassesTest._worker_pid)
543 """ Test RecipePreFinalise event class """
545 event = bb.event.RecipePreFinalise(callback)
546 self.assertEqual(event.fn(1), callback(1))
547 self.assertEqual(event.pid, EventClassesTest._worker_pid)
550 """ Test RecipeTaskPreProcess event class """
553 event = bb.event.RecipeTaskPreProcess(callback, tasklist)
554 self.assertEqual(event.fn(1), callback(1))
555 self.assertEqual(event.tasklist, tasklist)
556 self.assertEqual(event.pid, EventClassesTest._worker_pid)
559 """ Test RecipeParsed event base class """
561 event = bb.event.RecipeParsed(callback)
562 self.assertEqual(event.fn(1), callback(1))
563 self.assertEqual(event.pid, EventClassesTest._worker_pid)
570 event = bb.event.BuildBase(name, pkgs, failures)
571 self.assertEqual(event.name, name)
572 self.assertEqual(event.pkgs, pkgs)
573 self.assertEqual(event.getFailures(), failures)
574 name = event.name = "bar"
575 pkgs = event.pkgs = ["foo"]
576 self.assertEqual(event.name, name)
577 self.assertEqual(event.pkgs, pkgs)
578 self.assertEqual(event.getFailures(), failures)
579 self.assertEqual(event.pid, EventClassesTest._worker_pid)
583 event = bb.event.BuildInit()
584 self.assertEqual(event.name, None)
585 self.assertEqual(event.pkgs, [])
586 self.assertEqual(event.getFailures(), 0)
587 name = event.name = "bar"
588 pkgs = event.pkgs = ["foo"]
589 self.assertEqual(event.name, name)
590 self.assertEqual(event.pkgs, pkgs)
591 self.assertEqual(event.getFailures(), 0)
592 self.assertEqual(event.pid, EventClassesTest._worker_pid)
599 event = bb.event.BuildStarted(name, pkgs, failures)
600 self.assertEqual(event.name, name)
601 self.assertEqual(event.pkgs, pkgs)
602 self.assertEqual(event.getFailures(), failures)
603 self.assertEqual(event.msg, "Building Started")
604 name = event.name = "bar"
605 pkgs = event.pkgs = ["foo"]
606 msg = event.msg = "foobar"
607 self.assertEqual(event.name, name)
608 self.assertEqual(event.pkgs, pkgs)
609 self.assertEqual(event.getFailures(), failures)
610 self.assertEqual(event.msg, msg)
611 self.assertEqual(event.pid, EventClassesTest._worker_pid)
620 event = bb.event.BuildCompleted(total, name, pkgs, failures,
622 self.assertEqual(event.name, name)
623 self.assertEqual(event.pkgs, pkgs)
624 self.assertEqual(event.getFailures(), failures)
625 self.assertEqual(event.msg, "Building Failed")
626 event2 = bb.event.BuildCompleted(total, name, pkgs)
634 """ Test DiskFull event class """
639 event = bb.event.DiskFull(dev, type, freespace, mountpoint)
640 self.assertEqual(event.pid, EventClassesTest._worker_pid)
647 du = bb.event.DiskUsageSample(available_bytes, free_bytes,
649 event = bb.event.MonitorDiskEvent(du)
650 self.assertEqual(event.disk_usage.available_bytes, available_bytes)
651 self.assertEqual(event.disk_usage.free_bytes, free_bytes)
652 self.assertEqual(event.disk_usage.total_bytes, total_bytes)
653 self.assertEqual(event.pid, EventClassesTest._worker_pid)
656 """ Test NoProvider event class """
658 event1 = bb.event.NoProvider(item)
666 event2 = bb.event.NoProvider(item, runtime, dependees, reasons,
676 event3 = bb.event.NoProvider(item, runtime, dependees, reasons,
685 """ Test MultipleProviders event class """
688 event1 = bb.event.MultipleProviders(item, candidates)
698 event2 = bb.event.MultipleProviders(item, candidates, runtime)
708 """ Test ParseStarted event class """
710 event = bb.event.ParseStarted(total)
711 self.assertEqual(event.msg, "Recipe parsing Started")
712 self.assertEqual(event.total, total)
713 self.assertEqual(event.pid, EventClassesTest._worker_pid)
716 """ Test ParseCompleted event class """
724 event = bb.event.ParseCompleted(cached, parsed, skipped, masked,
726 self.assertEqual(event.msg, "Recipe parsing Completed")
729 actual = [event.cached, event.parsed, event.skipped, event.virtuals,
730 event.masked, event.errors, event.sofar, event.total]
732 self.assertEqual(event.pid, EventClassesTest._worker_pid)
735 """ Test ParseProgress event class """
738 event = bb.event.ParseProgress(current, total)
739 self.assertEqual(event.msg,
741 self.assertEqual(event.pid, EventClassesTest._worker_pid)
744 """ Test CacheLoadStarted event class """
746 event = bb.event.CacheLoadStarted(total)
747 self.assertEqual(event.msg, "Loading cache Started")
748 self.assertEqual(event.total, total)
749 self.assertEqual(event.pid, EventClassesTest._worker_pid)
752 """ Test CacheLoadProgress event class """
755 event = bb.event.CacheLoadProgress(current, total)
756 self.assertEqual(event.msg,
758 self.assertEqual(event.pid, EventClassesTest._worker_pid)
761 """ Test CacheLoadCompleted event class """
764 event = bb.event.CacheLoadCompleted(total, num_entries)
765 self.assertEqual(event.msg, "Loading cache Completed")
767 actual = [event.total, event.num_entries]
769 self.assertEqual(event.pid, EventClassesTest._worker_pid)
772 """ Test TreeDataPreparationStarted event class """
773 event = bb.event.TreeDataPreparationStarted()
774 self.assertEqual(event.msg, "Preparing tree data Started")
775 self.assertEqual(event.pid, EventClassesTest._worker_pid)
778 """ Test TreeDataPreparationProgress event class """
781 event = bb.event.TreeDataPreparationProgress(current, total)
782 self.assertEqual(event.msg,
784 self.assertEqual(event.pid, EventClassesTest._worker_pid)
787 """ Test TreeDataPreparationCompleted event class """
789 event = bb.event.TreeDataPreparationCompleted(total)
790 self.assertEqual(event.msg, "Preparing tree data Completed")
791 self.assertEqual(event.total, total)
792 self.assertEqual(event.pid, EventClassesTest._worker_pid)
795 """ Test DepTreeGenerated event class """
797 event = bb.event.DepTreeGenerated(depgraph)
798 self.assertEqual(event.pid, EventClassesTest._worker_pid)
801 """ Test TargetsTreeGenerated event class """
803 event = bb.event.TargetsTreeGenerated(model)
804 self.assertEqual(event.pid, EventClassesTest._worker_pid)
807 """ Test ReachableStamps event class """
809 event = bb.event.ReachableStamps(stamps)
810 self.assertEqual(event.stamps, stamps)
811 self.assertEqual(event.pid, EventClassesTest._worker_pid)
814 """ Test FilesMatchingFound event class """
817 event = bb.event.FilesMatchingFound(pattern, matches)
818 self.assertEqual(event.pid, EventClassesTest._worker_pid)
821 """ Test ConfigFilesFound event class """
824 event = bb.event.ConfigFilesFound(variable, values)
825 self.assertEqual(event.pid, EventClassesTest._worker_pid)
828 """ Test ConfigFilePathFound event class """
830 event = bb.event.ConfigFilePathFound(path)
831 self.assertEqual(event.pid, EventClassesTest._worker_pid)
834 """ Test message event classes """
836 event = bb.event.MsgBase(msg)
837 self.assertEqual(event.pid, EventClassesTest._worker_pid)
838 event = bb.event.MsgDebug(msg)
839 self.assertEqual(event.pid, EventClassesTest._worker_pid)
840 event = bb.event.MsgNote(msg)
841 self.assertEqual(event.pid, EventClassesTest._worker_pid)
842 event = bb.event.MsgWarn(msg)
843 self.assertEqual(event.pid, EventClassesTest._worker_pid)
844 event = bb.event.MsgError(msg)
845 self.assertEqual(event.pid, EventClassesTest._worker_pid)
846 event = bb.event.MsgFatal(msg)
847 self.assertEqual(event.pid, EventClassesTest._worker_pid)
848 event = bb.event.MsgPlain(msg)
849 self.assertEqual(event.pid, EventClassesTest._worker_pid)
852 """ Test LogExecTTY event class """
857 event = bb.event.LogExecTTY(msg, prog, sleep_delay, retries)
858 self.assertEqual(event.msg, msg)
859 self.assertEqual(event.prog, prog)
860 self.assertEqual(event.sleep_delay, sleep_delay)
861 self.assertEqual(event.retries, retries)
862 self.assertEqual(event.pid, EventClassesTest._worker_pid)
868 def _worker_handler(self, event, d): argument
869 self._returned_event = event
876 handler = bb.event.LogHandler(logging.INFO)
878 bb.event.worker_fire = self._worker_handler
883 event = self._returned_event
885 pe = pickle.dumps(event)
888 self.fail('Logged event is not serializable')
889 self.assertEqual(event.taskpid, EventClassesTest._worker_pid)
895 event = bb.event.MetadataEvent(eventtype, eventdata)
896 self.assertEqual(event.type, eventtype)
897 self.assertEqual(event.pid, EventClassesTest._worker_pid)
903 event = bb.event.ProcessStarted(processname, total)
904 self.assertEqual(event.processname, processname)
905 self.assertEqual(event.total, total)
906 self.assertEqual(event.pid, EventClassesTest._worker_pid)
912 event = bb.event.ProcessProgress(processname, progress)
913 self.assertEqual(event.processname, processname)
914 self.assertEqual(event.progress, progress)
915 self.assertEqual(event.pid, EventClassesTest._worker_pid)
921 event = bb.event.ProcessFinished(processname)
922 self.assertEqual(event.processname, processname)
923 self.assertEqual(event.pid, EventClassesTest._worker_pid)
927 event1 = bb.event.SanityCheck()
931 event2 = bb.event.SanityCheck(generateevents)
937 event = bb.event.SanityCheckPassed()
938 self.assertEqual(event.pid, EventClassesTest._worker_pid)
943 event1 = bb.event.SanityCheckFailed(msg)
946 event2 = bb.event.SanityCheckFailed(msg, network_error)
950 """ Test network event classes """
951 event1 = bb.event.NetworkTest()
954 event2 = bb.event.NetworkTest(generateevents)
956 event3 = bb.event.NetworkTestPassed()
958 event4 = bb.event.NetworkTestFailed()
962 """ Test FindSigInfoResult event class """
964 event = bb.event.FindSigInfoResult(result)
965 self.assertEqual(event.result, result)
966 self.assertEqual(event.pid, EventClassesTest._worker_pid)