def test_press_delete_button_and_cancel(self, _init_pygame, default_ui_manager, _display_surface_return_none): file_dialog = UIFileDialog(rect=pygame.Rect(100, 100, 440, 500), manager=default_ui_manager) file_dialog.current_file_path = Path( 'tests/data/images/splat.png').resolve() file_dialog.delete_button.enable() event_data = { 'button': pygame.BUTTON_LEFT, 'pos': file_dialog.delete_button.rect.center } default_ui_manager.process_events( pygame.event.Event(pygame.MOUSEBUTTONDOWN, event_data)) default_ui_manager.process_events( pygame.event.Event(pygame.MOUSEBUTTONUP, event_data)) for event in pygame.event.get(): default_ui_manager.process_events(event) assert file_dialog.delete_confirmation_dialog is not None event_data = { 'user_type': pygame_gui.UI_BUTTON_PRESSED, 'ui_element': file_dialog.delete_confirmation_dialog.cancel_button } cancel_event = pygame.event.Event(pygame.USEREVENT, event_data) default_ui_manager.process_events(cancel_event) assert (not file_dialog.delete_confirmation_dialog.alive())
def test_press_delete_button_and_ok(self, _init_pygame, default_ui_manager, _display_surface_return_none): file_dialog = UIFileDialog(rect=pygame.Rect(100, 100, 440, 500), manager=default_ui_manager) with open(str(Path('tests/data/for_delete.txt')), 'w') as file_to_delete: file_to_delete.write('Some text') file_dialog.current_file_path = Path( 'tests/data/for_delete.txt').absolute() file_dialog.delete_button.enable() event_data = { 'button': pygame.BUTTON_LEFT, 'pos': file_dialog.delete_button.rect.center } default_ui_manager.process_events( pygame.event.Event(pygame.MOUSEBUTTONDOWN, event_data)) default_ui_manager.process_events( pygame.event.Event(pygame.MOUSEBUTTONUP, event_data)) for event in pygame.event.get(): default_ui_manager.process_events(event) assert file_dialog.delete_confirmation_dialog is not None ok_event_data = { 'user_type': pygame_gui.UI_BUTTON_PRESSED, 'ui_element': file_dialog.delete_confirmation_dialog.confirm_button } ok_event = pygame.event.Event(pygame.USEREVENT, ok_event_data) default_ui_manager.process_events(ok_event) assert (not file_dialog.delete_confirmation_dialog.alive()) for event in pygame.event.get(): default_ui_manager.process_events(event) assert not Path('tests/data/for_delete.txt').exists()
def test_press_ok_button(self, _init_pygame, default_ui_manager, _display_surface_return_none): file_dialog = UIFileDialog(rect=pygame.Rect(100, 100, 440, 500), manager=default_ui_manager) file_dialog.current_file_path = Path( 'tests/data/images/splat.png').absolute() file_dialog.ok_button.enable() is_alive_pre_events = file_dialog.alive() event_data = { 'button': pygame.BUTTON_LEFT, 'pos': file_dialog.ok_button.rect.center } default_ui_manager.process_events( pygame.event.Event(pygame.MOUSEBUTTONDOWN, event_data)) default_ui_manager.process_events( pygame.event.Event(pygame.MOUSEBUTTONUP, event_data)) for event in pygame.event.get(): default_ui_manager.process_events(event) confirm_event_fired = False event_path = None for event in pygame.event.get(): default_ui_manager.process_events(event) if (event.type == pygame.USEREVENT and event.user_type == pygame_gui.UI_FILE_DIALOG_PATH_PICKED and event.ui_element == file_dialog): confirm_event_fired = True event_path = event.text is_dead_post_events = not file_dialog.alive() assert is_alive_pre_events assert is_dead_post_events assert confirm_event_fired assert event_path is not None and Path(event_path).name == 'splat.png'