diff --git a/AutomatedTesting/Gem/PythonTests/atom_renderer/atom_hydra_scripts/hydra_AtomEditorComponents_AddedToEntity.py b/AutomatedTesting/Gem/PythonTests/atom_renderer/atom_hydra_scripts/hydra_AtomEditorComponents_AddedToEntity.py index fb53086d14..8701d2f211 100644 --- a/AutomatedTesting/Gem/PythonTests/atom_renderer/atom_hydra_scripts/hydra_AtomEditorComponents_AddedToEntity.py +++ b/AutomatedTesting/Gem/PythonTests/atom_renderer/atom_hydra_scripts/hydra_AtomEditorComponents_AddedToEntity.py @@ -40,13 +40,11 @@ import azlmbr.editor as editor sys.path.append(os.path.join(azlmbr.paths.devroot, "AutomatedTesting", "Gem", "PythonTests")) import editor_python_test_tools.hydra_editor_utils as hydra -from editor_python_test_tools.utils import TestHelper as helper +from editor_python_test_tools.utils import TestHelper +from editor_python_test_tools.editor_test_helper import EditorTestHelper -class TestAllComponentsBasicTests(object): - """ - Holds shared hydra test functions for this set of tests. - """ +EditorTestHelper = EditorTestHelper(log_prefix="AtomEditorComponents") def run(): @@ -76,29 +74,6 @@ def run(): :return: None """ - def after_level_load(): - """Function to call after creating/opening a level to ensure it loads.""" - # Give everything a second to initialize. - general.idle_enable(True) - general.idle_wait(1.0) - general.update_viewport() - general.idle_wait(0.5) # half a second is more than enough for updating the viewport. - - # Close out problematic windows, FPS meters, and anti-aliasing. - if general.is_helpers_shown(): # Turn off the helper gizmos if visible - general.toggle_helpers() - general.idle_wait(1.0) - if general.is_pane_visible("Error Report"): # Close Error Report windows that block focus. - general.close_pane("Error Report") - if general.is_pane_visible("Error Log"): # Close Error Log windows that block focus. - general.close_pane("Error Log") - general.idle_wait(1.0) - general.run_console("r_displayInfo=0") - general.run_console("r_antialiasingmode=0") - general.idle_wait(1.0) - - return True - def create_entity_undo_redo_component_addition(component_name): new_entity = hydra.Entity(f"{component_name}") new_entity.create_entity(math.Vector3(512.0, 512.0, 34.0), [component_name]) @@ -107,13 +82,13 @@ def run(): # undo component addition general.undo() - helper.wait_for_condition(lambda: not hydra.has_components(new_entity.id, [component_name]), 2.0) + TestHelper.wait_for_condition(lambda: not hydra.has_components(new_entity.id, [component_name]), 2.0) general.log(f"{component_name}_test: Component removed after UNDO: " f"{not hydra.has_components(new_entity.id, [component_name])}") # redo component addition general.redo() - helper.wait_for_condition(lambda: hydra.has_components(new_entity.id, [component_name]), 2.0) + TestHelper.wait_for_condition(lambda: hydra.has_components(new_entity.id, [component_name]), 2.0) general.log(f"{component_name}_test: Component added after REDO: " f"{hydra.has_components(new_entity.id, [component_name])}") @@ -121,10 +96,10 @@ def run(): def verify_enter_exit_game_mode(component_name): general.enter_game_mode() - helper.wait_for_condition(lambda: general.is_in_game_mode(), 1.0) + TestHelper.wait_for_condition(lambda: general.is_in_game_mode(), 1.0) general.log(f"{component_name}_test: Entered game mode: {general.is_in_game_mode()}") general.exit_game_mode() - helper.wait_for_condition(lambda: not general.is_in_game_mode(), 1.0) + TestHelper.wait_for_condition(lambda: not general.is_in_game_mode(), 1.0) general.log(f"{component_name}_test: Exit game mode: {not general.is_in_game_mode()}") def verify_hide_unhide_entity(component_name, entity_obj): @@ -141,16 +116,16 @@ def run(): def verify_deletion_undo_redo(component_name, entity_obj): editor.ToolsApplicationRequestBus(bus.Broadcast, "DeleteEntityById", entity_obj.id) - helper.wait_for_condition(lambda: not hydra.find_entity_by_name(entity_obj.name), 1.0) + TestHelper.wait_for_condition(lambda: not hydra.find_entity_by_name(entity_obj.name), 1.0) general.log(f"{component_name}_test: Entity deleted: {not hydra.find_entity_by_name(entity_obj.name)}") general.undo() - helper.wait_for_condition(lambda: hydra.find_entity_by_name(entity_obj.name) is not None, 1.0) + TestHelper.wait_for_condition(lambda: hydra.find_entity_by_name(entity_obj.name) is not None, 1.0) general.log(f"{component_name}_test: UNDO entity deletion works: " f"{hydra.find_entity_by_name(entity_obj.name) is not None}") general.redo() - helper.wait_for_condition(lambda: not hydra.find_entity_by_name(entity_obj.name), 1.0) + TestHelper.wait_for_condition(lambda: not hydra.find_entity_by_name(entity_obj.name), 1.0) general.log(f"{component_name}_test: REDO entity deletion works: " f"{not hydra.find_entity_by_name(entity_obj.name)}") @@ -164,7 +139,7 @@ def run(): f"{not is_component_enabled(entity_obj.components[0])}") for component in components_to_add: entity_obj.add_component(component) - helper.wait_for_condition(lambda: is_component_enabled(entity_obj.components[0]), 1.0) + TestHelper.wait_for_condition(lambda: is_component_enabled(entity_obj.components[0]), 1.0) general.log( f"{component_name}_test: Entity enabled after adding " f"required components: {is_component_enabled(entity_obj.components[0])}" @@ -174,7 +149,7 @@ def run(): entity_obj.get_set_test(0, path, value) # Wait for Editor idle loop before executing Python hydra scripts. - helper.init_idle() + TestHelper.init_idle() # Create a new level. new_level_name = "tmp_level" # Specified in TestAllComponentsBasicTests.py @@ -196,7 +171,7 @@ def run(): general.log("Unknown error, failed to create level") else: general.log(f"{new_level_name} level created successfully") - after_level_load() + EditorTestHelper.after_level_load(bypass_viewport_resize=True) # Delete all existing entities initially search_filter = azlmbr.entity.SearchFilter() diff --git a/AutomatedTesting/Gem/PythonTests/atom_renderer/test_Atom_MainSuite.py b/AutomatedTesting/Gem/PythonTests/atom_renderer/test_Atom_MainSuite.py index 738bfd9925..a82d5c5fd4 100644 --- a/AutomatedTesting/Gem/PythonTests/atom_renderer/test_Atom_MainSuite.py +++ b/AutomatedTesting/Gem/PythonTests/atom_renderer/test_Atom_MainSuite.py @@ -39,17 +39,18 @@ class TestAtomEditorComponents(object): request.addfinalizer(teardown) - @pytest.mark.test_case_id("C32078130") # Tone Mapper - @pytest.mark.test_case_id("C32078129") # Light - @pytest.mark.test_case_id("C32078131") # Radius Weight Modifier - @pytest.mark.test_case_id("C32078127") # PostFX Layer - @pytest.mark.test_case_id("C32078126") # Point Light - @pytest.mark.test_case_id("C32078125") # Physical Sky - @pytest.mark.test_case_id("C32078115") # Global Skylight (IBL) - @pytest.mark.test_case_id("C32078121") # Exposure Control - @pytest.mark.test_case_id("C32078120") # Directional Light - @pytest.mark.test_case_id("C32078119") # DepthOfField - @pytest.mark.test_case_id("C32078118") # Decal + @pytest.mark.test_case_id( + "C32078130", # Tone Mapper + "C32078129", # Light + "C32078131", # Radius Weight Modifier + "C32078127", # PostFX Layer + "C32078126", # Point Light + "C32078125", # Physical Sky + "C32078115", # Global Skylight (IBL) + "C32078121", # Exposure Control + "C32078120", # Directional Light + "C32078119", # DepthOfField + "C32078118") # Decal def test_AtomEditorComponents_AddedToEntity(self, request, editor, level, workspace, project, launcher_platform): cfg_args = [level]