def test_default_event_handling(self): screen = SampleGameScreenUI(GameConfig(), GameModel()) loop_events = GameLoopEvents(screen) loop_events.loop_setup() loop = GameLoop(loop_events) # Python sorcery! loop._GameLoop__handle_event(pygame.event.Event(pygame.MOUSEBUTTONDOWN)) self.assertTrue(screen.evh.is_called)
def test_event_handling_basic(self): """ Test basic event handling of non-keyboard-based events. """ screen = GameScreen(GameConfig(), GameModel()) loop_events = GameLoopEvents(screen) evh1 = EventHandlerMock() loop_events.add_event_handler(self.btn_down_event, evh1.handle_event) loop = GameLoop(loop_events) # More Python sorcery! loop._GameLoop__handle_event(self.btn_down_event) self.assertTrue(evh1.is_called)
def test_event_handling_kbd_basic(self): """ Test basic event handling of keyboard-based events. """ screen = GameScreen(GameConfig(), GameModel()) loop_events = KeyboardHandlingLoopEventsMock(screen) evh1 = EventHandlerMock() loop_events.key_controls.register_key(pygame.K_UP, evh1.handle_event) loop_events.attach_event_handlers() loop = GameLoop(loop_events) # More Python sorcery! loop._GameLoop__handle_event(self.press_up_key_event) self.assertTrue(evh1.is_called)
def test_event_handling_multiple(self): """ Test that multiple event handlers can listen on the same non-keyboard-based event. """ screen = GameScreen(GameConfig(), GameModel()) loop_events = GameLoopEvents(screen) evh1 = EventHandlerMock() evh2 = EventHandlerMock() loop_events.add_event_handler(self.btn_down_event, evh1.handle_event) loop_events.add_event_handler(self.btn_down_event, evh2.handle_event) loop = GameLoop(loop_events) # More Python sorcery! loop._GameLoop__handle_event(self.btn_down_event) self.assertTrue(evh1.is_called) self.assertTrue(evh2.is_called)