From 87f061be2fd43cb59e4cb6ccb2daf566fed4888d Mon Sep 17 00:00:00 2001 From: Dan Lawrence Date: Fri, 5 Aug 2022 11:48:35 +0100 Subject: [PATCH] Yet more element test coverage fixes --- .../test_core/test_text/test_text_effects.py | 24 ++++++----- .../test_ui_horizontal_slider.py | 4 ++ tests/test_elements/test_ui_progress_bar.py | 43 +++++++++++++++++++ 3 files changed, 61 insertions(+), 10 deletions(-) create mode 100644 tests/test_elements/test_ui_progress_bar.py diff --git a/tests/test_core/test_text/test_text_effects.py b/tests/test_core/test_text/test_text_effects.py index a721c469..31592f45 100644 --- a/tests/test_core/test_text/test_text_effects.py +++ b/tests/test_core/test_text/test_text_effects.py @@ -31,22 +31,22 @@ def test_update(self, _init_pygame, default_ui_manager: UIManager): text_box = UITextBox('hello this is a test', pygame.Rect((10, 10), (200, 100)), default_ui_manager) - typing_effect = TypingAppearEffect(text_owner=text_box) + text_box.set_active_effect(TEXT_EFFECT_TYPING_APPEAR) - assert typing_effect.text_progress == 0 + assert text_box.active_text_effect.text_progress == 0 - typing_effect.update(time_delta=0.06) - typing_effect.update(time_delta=0.06) - typing_effect.update(time_delta=0.06) - typing_effect.update(time_delta=0.06) + text_box.active_text_effect.update(time_delta=0.06) + text_box.active_text_effect.update(time_delta=0.06) + text_box.active_text_effect.update(time_delta=0.06) + text_box.active_text_effect.update(time_delta=0.06) - assert typing_effect.text_progress == 2 + assert text_box.active_text_effect.text_progress == 2 label = UILabel(pygame.Rect((10, 10), (200, 100)), 'Hell', default_ui_manager) - label_typing_effect = TypingAppearEffect(text_owner=label) + label.set_active_effect(TEXT_EFFECT_TYPING_APPEAR) - assert label_typing_effect.text_progress == 0 + assert label.active_text_effect.text_progress == 0 label.update(time_delta=0.06) label.update(time_delta=0.06) @@ -57,7 +57,11 @@ def test_update(self, _init_pygame, default_ui_manager: UIManager): label.update(time_delta=0.06) label.update(time_delta=0.06) - assert label_typing_effect.text_progress == 0 + assert label.active_text_effect.text_progress == 4 + + label.stop_finished_effect() + + assert label.active_text_effect is None def test_has_text_changed(self, _init_pygame, default_ui_manager: UIManager): text_box = UITextBox('hello this is a test', diff --git a/tests/test_elements/test_ui_horizontal_slider.py b/tests/test_elements/test_ui_horizontal_slider.py index b7c84523..9edb3fb5 100644 --- a/tests/test_elements/test_ui_horizontal_slider.py +++ b/tests/test_elements/test_ui_horizontal_slider.py @@ -79,9 +79,13 @@ def test_check_update_buttons(self, _init_pygame, default_ui_manager, # scroll down a bit then up again to exercise update slider.get_current_value() # Clear has moved this turn slider.left_button.held = True + slider.update(0.01) + slider.update(0.01) slider.update(0.5) slider.left_button.held = False slider.right_button.held = True + slider.update(0.01) + slider.update(0.01) slider.update(0.5) assert slider.has_moved_recently is True diff --git a/tests/test_elements/test_ui_progress_bar.py b/tests/test_elements/test_ui_progress_bar.py new file mode 100644 index 00000000..9ed5fed9 --- /dev/null +++ b/tests/test_elements/test_ui_progress_bar.py @@ -0,0 +1,43 @@ +import os +import pytest +import pygame + +from tests.shared_comparators import compare_surfaces + +from pygame_gui.ui_manager import UIManager +from pygame_gui.elements.ui_progress_bar import UIProgressBar + + +class TestUIProgressBar: + + def test_creation(self, _init_pygame, default_ui_manager): + progress_bar = UIProgressBar(relative_rect=pygame.Rect(100, 100, 150, 30), + manager=default_ui_manager) + assert progress_bar.image is not None + + def test_update(self, _init_pygame, default_ui_manager): + progress_bar = UIProgressBar(relative_rect=pygame.Rect(100, 100, 150, 30), + manager=default_ui_manager) + progress_bar.current_progress = 50.0 + progress_bar.update(0.01) + assert progress_bar.image is not None and progress_bar.progress_percentage == 0.5 + + def test_set_current_progress(self, _init_pygame, default_ui_manager): + progress_bar = UIProgressBar(relative_rect=pygame.Rect(100, 100, 150, 30), + manager=default_ui_manager) + + progress_bar.set_current_progress(75) + + assert progress_bar.progress_percentage == 0.75 + + def test_status_text(self, _init_pygame, default_ui_manager): + progress_bar = UIProgressBar(relative_rect=pygame.Rect(100, 100, 150, 30), + manager=default_ui_manager) + + progress_bar.set_current_progress(75) + + assert progress_bar.status_text() == "75.0/100.0" + + +if __name__ == '__main__': + pytest.console_main()