From a9913cc079ac22e97ce50c3ffa512211420c3b6b Mon Sep 17 00:00:00 2001 From: jromnoa Date: Thu, 22 Apr 2021 17:34:18 -0700 Subject: [PATCH] remove shadowtest level, swap test to components test instead --- .../hydra_AllLevels_OpenClose.py | 103 ----- ...ydra_AtomEditorComponents_AddedToEntity.py | 297 +++++++++++++++ .../atom_renderer/test_Atom_MainSuite.py | 181 ++++++++- .../ShadowTest/LevelData/Environment.xml | 14 - .../ShadowTest/LevelData/Heightmap.dat | 3 - .../ShadowTest/LevelData/TerrainTexture.xml | 7 - .../ShadowTest/LevelData/TimeOfDay.xml | 356 ------------------ .../ShadowTest/LevelData/VegetationMap.dat | 3 - .../AtomLevels/ShadowTest/ShadowTest.ly | 3 - .../AtomLevels/ShadowTest/TerrainTexture.pak | 3 - .../Levels/AtomLevels/ShadowTest/filelist.xml | 6 - .../Levels/AtomLevels/ShadowTest/level.pak | 3 - .../Levels/AtomLevels/ShadowTest/tags.txt | 12 - .../AtomLevels/ShadowTest/terrain/cover.ctc | 3 - 14 files changed, 459 insertions(+), 535 deletions(-) delete mode 100644 AutomatedTesting/Gem/PythonTests/atom_renderer/atom_hydra_scripts/hydra_AllLevels_OpenClose.py create mode 100644 AutomatedTesting/Gem/PythonTests/atom_renderer/atom_hydra_scripts/hydra_AtomEditorComponents_AddedToEntity.py delete mode 100644 AutomatedTesting/Levels/AtomLevels/ShadowTest/LevelData/Environment.xml delete mode 100644 AutomatedTesting/Levels/AtomLevels/ShadowTest/LevelData/Heightmap.dat delete mode 100644 AutomatedTesting/Levels/AtomLevels/ShadowTest/LevelData/TerrainTexture.xml delete mode 100644 AutomatedTesting/Levels/AtomLevels/ShadowTest/LevelData/TimeOfDay.xml delete mode 100644 AutomatedTesting/Levels/AtomLevels/ShadowTest/LevelData/VegetationMap.dat delete mode 100644 AutomatedTesting/Levels/AtomLevels/ShadowTest/ShadowTest.ly delete mode 100644 AutomatedTesting/Levels/AtomLevels/ShadowTest/TerrainTexture.pak delete mode 100644 AutomatedTesting/Levels/AtomLevels/ShadowTest/filelist.xml delete mode 100644 AutomatedTesting/Levels/AtomLevels/ShadowTest/level.pak delete mode 100644 AutomatedTesting/Levels/AtomLevels/ShadowTest/tags.txt delete mode 100644 AutomatedTesting/Levels/AtomLevels/ShadowTest/terrain/cover.ctc diff --git a/AutomatedTesting/Gem/PythonTests/atom_renderer/atom_hydra_scripts/hydra_AllLevels_OpenClose.py b/AutomatedTesting/Gem/PythonTests/atom_renderer/atom_hydra_scripts/hydra_AllLevels_OpenClose.py deleted file mode 100644 index 81075657f4..0000000000 --- a/AutomatedTesting/Gem/PythonTests/atom_renderer/atom_hydra_scripts/hydra_AllLevels_OpenClose.py +++ /dev/null @@ -1,103 +0,0 @@ -""" -All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or -its licensors. - -For complete copyright and license terms please see the LICENSE at the root of this -distribution (the "License"). All use of this software is governed by the License, -or, if provided, by the license below or the license accompanying this file. Do not -remove or modify any license notices. This file is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - -This hydra/EPB script opens and closes every possible Atom level. -""" -import os -import sys - -import azlmbr.legacy.general as general -import azlmbr.paths - -sys.path.append(os.path.join(azlmbr.paths.devroot, 'AutomatedTesting', 'Gem', 'PythonTests')) - -from automatedtesting_shared.editor_test_helper import EditorTestHelper - -levels = os.listdir(os.path.join(azlmbr.paths.devroot, "AutomatedTesting", "Levels", "AtomLevels")) -helper = EditorTestHelper(log_prefix="HydraAtomLevels") - - -def run(): - """ - 1. Open & close all valid test levels in the Editor. - 2. Every time a level is opened, verify it loads correctly and the Editor remains stable. - """ - - # Create a new level. - level_name = "tmp_level" # Defined in test_Atom_MainSuite.py - heightmap_resolution = 512 - heightmap_meters_per_pixel = 1 - terrain_texture_resolution = 412 - use_terrain = False - - # Return codes are ECreateLevelResult defined in CryEdit.h - return_code = general.create_level_no_prompt( - f"AtomLevels/{level_name}", - heightmap_resolution, - heightmap_meters_per_pixel, - terrain_texture_resolution, - use_terrain - ) - if return_code == 1: - general.log(f"AtomLevels/{level_name} level already exists") - elif return_code == 2: - general.log("Failed to create directory") - elif return_code == 3: - general.log("Directory length is too long") - elif return_code != 0: - general.log("Unknown error, failed to create level") - else: - general.log(f"AtomLevels/{level_name} level created successfully") - after_level_load() - - # Open all valid AtomLevels. - failed_to_open = [] - levels.append(level_name) - for level in levels: - if general.is_idle_enabled() and (general.get_current_level_name() == level): - general.log(f"Level {level} already open.") - else: - general.log(f"Opening level {level}") - general.open_level_no_prompt(f"AtomLevels/{level}") - helper.wait_for_condition(function=lambda: general.get_current_level_name() == level, - timeout_in_seconds=4.0) - result = (general.get_current_level_name() == level) and after_level_load() - if result: - general.log(f"Successfully opened {level}") - else: - general.log(f"{level} failed to open") - failed_to_open.append(level) - - if failed_to_open: - general.log(f"The following levels failed to open: {failed_to_open}") - - -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.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() - 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.run_console("r_displayInfo=0") - general.run_console("r_antialiasingmode=0") - - return True - - -if __name__ == "__main__": - run() 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 new file mode 100644 index 0000000000..848deeb522 --- /dev/null +++ b/AutomatedTesting/Gem/PythonTests/atom_renderer/atom_hydra_scripts/hydra_AtomEditorComponents_AddedToEntity.py @@ -0,0 +1,297 @@ +""" +All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or +its licensors. + +For complete copyright and license terms please see the LICENSE at the root of this +distribution (the "License"). All use of this software is governed by the License, +or, if provided, by the license below or the license accompanying this file. Do not +remove or modify any license notices. This file is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +""" + +# This module does a bulk test and update of many components at once. +# Each test case is listed below in the format: +# "Test Case ID: Test Case Title (URL)" + +# C32078130: Tone Mapper (https://testrail.agscollab.com/index.php?/cases/view/32078130) +# C32078129: Light (https://testrail.agscollab.com/index.php?/cases/view/32078129) +# C32078131: Radius Weight Modifier (https://testrail.agscollab.com/index.php?/cases/view/32078131) +# C32078127: PostFX Layer (https://testrail.agscollab.com/index.php?/cases/view/32078127) +# C32078126: Point Light (https://testrail.agscollab.com/index.php?/cases/view/32078126) +# C32078125: Physical Sky (https://testrail.agscollab.com/index.php?/cases/view/32078125) +# C32078115: Global Skylight (IBL) (https://testrail.agscollab.com/index.php?/cases/view/32078115) +# C32078121: Exposure Control (https://testrail.agscollab.com/index.php?/cases/view/32078121) +# C32078120: Directional Light (https://testrail.agscollab.com/index.php?/cases/view/32078120) +# C32078119: DepthOfField (https://testrail.agscollab.com/index.php?/cases/view/32078119) +# C32078118: Decal (https://testrail.agscollab.com/index.php?/cases/view/32078118) +# C32078117: Area Light (https://testrail.agscollab.com/index.php?/cases/view/32078117) + +import os +import sys + +import azlmbr.math as math +import azlmbr.bus as bus +import azlmbr.paths +import azlmbr.asset as asset +import azlmbr.entity as entity +import azlmbr.legacy.general as general +import azlmbr.editor as editor +import azlmbr.render as render + +sys.path.append(os.path.join(azlmbr.paths.devroot, "AutomatedTesting", "Gem", "PythonTests")) + +import automatedtesting_shared.hydra_editor_utils as hydra +from automatedtesting_shared.utils import TestHelper as helper + + +class TestAllComponentsBasicTests(object): + """ + Holds shared hydra test functions for this set of tests. + """ + + +def run(): + """ + Summary: + The below common tests are done for each of the components. + 1) Addition of component to the entity + 2) UNDO/REDO of addition of component + 3) Enter/Exit game mode + 4) Hide/Show entity containing component + 5) Deletion of component + 6) UNDO/REDO of deletion of component + Some additional tests for specific components include + 1) Assigning value to some properties of each component + 2) Verifying if the component is activated only when the required components are added + + Expected Result: + 1) Component can be added to an entity. + 2) The addition of component can be undone and redone. + 3) Game mode can be entered/exited without issue. + 4) Entity with component can be hidden/shown. + 5) Component can be deleted. + 6) The deletion of component can be undone and redone. + 7) Component is activated only when the required components are added + 8) Values can be assigned to the properties of the component + + :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]) + general.log(f"{component_name}_test: Component added to the entity: " + f"{hydra.has_components(new_entity.id, [component_name])}") + + # undo component addition + general.undo() + helper.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) + general.log(f"{component_name}_test: Component added after REDO: " + f"{hydra.has_components(new_entity.id, [component_name])}") + + return new_entity + + def verify_enter_exit_game_mode(component_name): + general.enter_game_mode() + helper.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) + general.log(f"{component_name}_test: Exit game mode: {not general.is_in_game_mode()}") + + def verify_hide_unhide_entity(component_name, entity_obj): + + def is_entity_hidden(entity_id): + return editor.EditorEntityInfoRequestBus(bus.Event, "IsHidden", entity_id) + + editor.EditorEntityAPIBus(bus.Event, "SetVisibilityState", entity_obj.id, False) + general.idle_wait_frames(1) + general.log(f"{component_name}_test: Entity is hidden: {is_entity_hidden(entity_obj.id)}") + editor.EditorEntityAPIBus(bus.Event, "SetVisibilityState", entity_obj.id, True) + general.idle_wait_frames(1) + general.log(f"{component_name}_test: Entity is shown: {not is_entity_hidden(entity_obj.id)}") + + 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) + 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) + 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) + general.log(f"{component_name}_test: REDO entity deletion works: " + f"{not hydra.find_entity_by_name(entity_obj.name)}") + + def verify_required_component_addition(entity_obj, components_to_add, component_name): + + def is_component_enabled(entity_componentid_pair): + return editor.EditorComponentAPIBus(bus.Broadcast, "IsComponentEnabled", entity_componentid_pair) + + general.log( + f"{component_name}_test: Entity disabled initially: " + 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) + general.log( + f"{component_name}_test: Entity enabled after adding " + f"required components: {is_component_enabled(entity_obj.components[0])}" + ) + + def verify_set_property(entity_obj, path, value): + entity_obj.get_set_test(0, path, value) + + # Wait for Editor idle loop before executing Python hydra scripts. + helper.init_idle() + + # Create a new level. + new_level_name = "tmp_level" # Specified in TestAllComponentsBasicTests.py + heightmap_resolution = 512 + heightmap_meters_per_pixel = 1 + terrain_texture_resolution = 412 + use_terrain = False + + # Return codes are ECreateLevelResult defined in CryEdit.h + return_code = general.create_level_no_prompt( + new_level_name, heightmap_resolution, heightmap_meters_per_pixel, terrain_texture_resolution, use_terrain) + if return_code == 1: + general.log(f"{new_level_name} level already exists") + elif return_code == 2: + general.log("Failed to create directory") + elif return_code == 3: + general.log("Directory length is too long") + elif return_code != 0: + general.log("Unknown error, failed to create level") + else: + general.log(f"{new_level_name} level created successfully") + after_level_load() + + # Delete all existing entities initially + search_filter = azlmbr.entity.SearchFilter() + all_entities = entity.SearchBus(azlmbr.bus.Broadcast, "SearchEntities", search_filter) + editor.ToolsApplicationRequestBus(bus.Broadcast, "DeleteEntities", all_entities) + + class ComponentTests: + """Test launcher for each component.""" + def __init__(self, component_name, *additional_tests): + self.component_name = component_name + self.additional_tests = additional_tests + self.run_component_tests() + + def run_component_tests(self): + # Run common and additional tests + entity_obj = create_entity_undo_redo_component_addition(self.component_name) + + # Enter/Exit game mode test + verify_enter_exit_game_mode(self.component_name) + + # Any additional tests are executed here + for test in self.additional_tests: + test(entity_obj) + + # Hide/Unhide entity test + verify_hide_unhide_entity(self.component_name, entity_obj) + + # Deletion/Undo/Redo test + verify_deletion_undo_redo(self.component_name, entity_obj) + + # Area Light Component + area_light = "Area Light" + ComponentTests( + area_light, lambda entity_obj: verify_required_component_addition( + entity_obj, ["Capsule Shape"], area_light)) + + # Decal Component + material_asset_path = os.path.join("Materials", "decal", "aiirship_nose_number_decal.material") + material_asset = asset.AssetCatalogRequestBus( + bus.Broadcast, "GetAssetIdByPath", material_asset_path, math.Uuid(), False) + ComponentTests( + "Decal", lambda entity_obj: verify_set_property( + entity_obj, "Settings|Decal Settings|Material", material_asset)) + + # DepthOfField Component + camera_entity = hydra.Entity("camera_entity") + camera_entity.create_entity(math.Vector3(512.0, 512.0, 34.0), ["Camera"]) + depth_of_field = "DepthOfField" + ComponentTests( + depth_of_field, + lambda entity_obj: verify_required_component_addition(entity_obj, ["PostFX Layer"], depth_of_field), + lambda entity_obj: verify_set_property( + entity_obj, "Controller|Configuration|Camera Entity", camera_entity.id)) + + # Directional Light Component + ComponentTests( + "Directional Light", + lambda entity_obj: verify_set_property( + entity_obj, "Controller|Configuration|Shadow|Camera", camera_entity.id)) + + # Exposure Control Component + ComponentTests( + "Exposure Control", lambda entity_obj: verify_required_component_addition( + entity_obj, ["PostFX Layer"], "Exposure Control")) + + # Global Skylight (IBL) Component + diffuse_image_path = os.path.join("LightingPresets", "greenwich_park_02_4k_iblskyboxcm.exr.streamingimage") + diffuse_image_asset = asset.AssetCatalogRequestBus( + bus.Broadcast, "GetAssetIdByPath", diffuse_image_path, math.Uuid(), False) + specular_image_path = os.path.join("LightingPresets", "greenwich_park_02_4k_iblskyboxcm.exr.streamingimage") + specular_image_asset = asset.AssetCatalogRequestBus( + bus.Broadcast, "GetAssetIdByPath", specular_image_path, math.Uuid(), False) + ComponentTests( + "Global Skylight (IBL)", + lambda entity_obj: verify_set_property( + entity_obj, "Controller|Configuration|Diffuse Image", diffuse_image_asset), + lambda entity_obj: verify_set_property( + entity_obj, "Controller|Configuration|Specular Image", specular_image_asset)) + + # Physical Sky Component + ComponentTests("Physical Sky") + + # Point Light Component + ComponentTests("Point Light") + + # PostFX Layer Component + ComponentTests("PostFX Layer") + + # Radius Weight Modifier Component + ComponentTests("Radius Weight Modifier") + + # Spot Light Component + ComponentTests("Light") + + +if __name__ == "__main__": + run() diff --git a/AutomatedTesting/Gem/PythonTests/atom_renderer/test_Atom_MainSuite.py b/AutomatedTesting/Gem/PythonTests/atom_renderer/test_Atom_MainSuite.py index fe23f108bd..eb207c2f90 100644 --- a/AutomatedTesting/Gem/PythonTests/atom_renderer/test_Atom_MainSuite.py +++ b/AutomatedTesting/Gem/PythonTests/atom_renderer/test_Atom_MainSuite.py @@ -11,11 +11,8 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. import logging import os -from pathlib import PurePath import pytest -# Bail on the test if ly_test_tools doesn't exist. -pytest.importorskip("ly_test_tools") import ly_test_tools.environment.file_system as file_system import automatedtesting_shared.hydra_test_utils as hydra @@ -24,17 +21,11 @@ logger = logging.getLogger(__name__) EDITOR_TIMEOUT = 60 TEST_DIRECTORY = os.path.join(os.path.dirname(__file__), "atom_hydra_scripts") -# Go to the project root directory -PROJECT_DIRECTORY = PurePath(TEST_DIRECTORY) -if len(PROJECT_DIRECTORY.parents) > 5: - for _ in range(5): - PROJECT_DIRECTORY = PROJECT_DIRECTORY.parent - @pytest.mark.parametrize("project", ["AutomatedTesting"]) @pytest.mark.parametrize("launcher_platform", ['windows_editor']) @pytest.mark.parametrize("level", ["tmp_level"]) -class TestAtomLevels(object): +class TestAtomEditorComponents(object): @pytest.fixture(autouse=True) def setup_teardown(self, request, workspace, project, level): # Cleanup our temp level @@ -48,16 +39,167 @@ class TestAtomLevels(object): request.addfinalizer(teardown) - @pytest.mark.test_case_id("C34428174") # Level: ShadowTest - def test_AllLevels_OpenClose(self, request, editor, level, workspace, project, launcher_platform): - + @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 + def test_AtomEditorComponents_AddedToEntity(self, request, editor, level, workspace, project, launcher_platform): cfg_args = [level] - test_levels = os.listdir(os.path.join(str(PROJECT_DIRECTORY), project, "Levels", "AtomLevels")) - test_levels.append(level) - expected_lines = [] - for level in test_levels: - expected_lines.append(f"Successfully opened {level}") + expected_lines = [ + # Area Light Component + "Area Light Entity successfully created", + "Area Light_test: Component added to the entity: True", + "Area Light_test: Component removed after UNDO: True", + "Area Light_test: Component added after REDO: True", + "Area Light_test: Entered game mode: True", + # Disabled, see ATOM-: "Area Light_test: Exit game mode: True", + "Area Light_test: Entity disabled initially: True", + "Area Light_test: Entity enabled after adding required components: True", + "Area Light_test: Entity is hidden: True", + "Area Light_test: Entity is shown: True", + "Area Light_test: Entity deleted: True", + "Area Light_test: UNDO entity deletion works: True", + "Area Light_test: REDO entity deletion works: True", + # Decal Component + "Decal Entity successfully created", + "Decal_test: Component added to the entity: True", + "Decal_test: Component removed after UNDO: True", + "Decal_test: Component added after REDO: True", + "Decal_test: Entered game mode: True", + "Decal_test: Exit game mode: True", + "Decal Settings|Decal Settings|Material: SUCCESS", + "Decal_test: Entity is hidden: True", + "Decal_test: Entity is shown: True", + "Decal_test: Entity deleted: True", + "Decal_test: UNDO entity deletion works: True", + "Decal_test: REDO entity deletion works: True", + # DepthOfField Component + "DepthOfField Entity successfully created", + "DepthOfField_test: Component added to the entity: True", + "DepthOfField_test: Component removed after UNDO: True", + "DepthOfField_test: Component added after REDO: True", + "DepthOfField_test: Entered game mode: True", + "DepthOfField_test: Exit game mode: True", + "DepthOfField_test: Entity disabled initially: True", + "DepthOfField_test: Entity enabled after adding required components: True", + "DepthOfField Controller|Configuration|Camera Entity: SUCCESS", + "DepthOfField_test: Entity is hidden: True", + "DepthOfField_test: Entity is shown: True", + "DepthOfField_test: Entity deleted: True", + "DepthOfField_test: UNDO entity deletion works: True", + "DepthOfField_test: REDO entity deletion works: True", + # Directional Light Component + "Directional Light Entity successfully created", + "Directional Light_test: Component added to the entity: True", + "Directional Light_test: Component removed after UNDO: True", + "Directional Light_test: Component added after REDO: True", + "Directional Light_test: Entered game mode: True", + "Directional Light_test: Exit game mode: True", + "Directional Light Controller|Configuration|Shadow|Camera: SUCCESS", + "Directional Light_test: Entity is hidden: True", + "Directional Light_test: Entity is shown: True", + "Directional Light_test: Entity deleted: True", + "Directional Light_test: UNDO entity deletion works: True", + "Directional Light_test: REDO entity deletion works: True", + # Exposure Control Component + "Exposure Control Entity successfully created", + "Exposure Control_test: Component added to the entity: True", + "Exposure Control_test: Component removed after UNDO: True", + "Exposure Control_test: Component added after REDO: True", + "Exposure Control_test: Entered game mode: True", + "Exposure Control_test: Exit game mode: True", + "Exposure Control_test: Entity disabled initially: True", + "Exposure Control_test: Entity enabled after adding required components: True", + "Exposure Control_test: Entity is hidden: True", + "Exposure Control_test: Entity is shown: True", + "Exposure Control_test: Entity deleted: True", + "Exposure Control_test: UNDO entity deletion works: True", + "Exposure Control_test: REDO entity deletion works: True", + # Global Skylight (IBL) Component + "Global Skylight (IBL) Entity successfully created", + "Global Skylight (IBL)_test: Component added to the entity: True", + "Global Skylight (IBL)_test: Component removed after UNDO: True", + "Global Skylight (IBL)_test: Component added after REDO: True", + "Global Skylight (IBL)_test: Entered game mode: True", + "Global Skylight (IBL)_test: Exit game mode: True", + "Global Skylight (IBL) Controller|Configuration|Diffuse Image: SUCCESS", + "Global Skylight (IBL) Controller|Configuration|Specular Image: SUCCESS", + "Global Skylight (IBL)_test: Entity is hidden: True", + "Global Skylight (IBL)_test: Entity is shown: True", + "Global Skylight (IBL)_test: Entity deleted: True", + "Global Skylight (IBL)_test: UNDO entity deletion works: True", + "Global Skylight (IBL)_test: REDO entity deletion works: True", + # Physical Sky Component + "Physical Sky Entity successfully created", + "Physical Sky component was added to entity", + "Entity has a Physical Sky component", + "Physical Sky_test: Component added to the entity: True", + "Physical Sky_test: Component removed after UNDO: True", + "Physical Sky_test: Component added after REDO: True", + "Physical Sky_test: Entered game mode: True", + "Physical Sky_test: Exit game mode: True", + "Physical Sky_test: Entity is hidden: True", + "Physical Sky_test: Entity is shown: True", + "Physical Sky_test: Entity deleted: True", + "Physical Sky_test: UNDO entity deletion works: True", + "Physical Sky_test: REDO entity deletion works: True", + # Point Light Component + "Point Light Entity successfully created", + "Point Light_test: Component added to the entity: True", + "Point Light_test: Component removed after UNDO: True", + "Point Light_test: Component added after REDO: True", + "Point Light_test: Entered game mode: True", + "Point Light_test: Exit game mode: True", + "Point Light_test: Entity is hidden: True", + "Point Light_test: Entity is shown: True", + "Point Light_test: Entity deleted: True", + "Point Light_test: UNDO entity deletion works: True", + "Point Light_test: REDO entity deletion works: True", + # PostFX Layer Component + "PostFX Layer Entity successfully created", + "PostFX Layer_test: Component added to the entity: True", + "PostFX Layer_test: Component removed after UNDO: True", + "PostFX Layer_test: Component added after REDO: True", + "PostFX Layer_test: Entered game mode: True", + "PostFX Layer_test: Exit game mode: True", + "PostFX Layer_test: Entity is hidden: True", + "PostFX Layer_test: Entity is shown: True", + "PostFX Layer_test: Entity deleted: True", + "PostFX Layer_test: UNDO entity deletion works: True", + "PostFX Layer_test: REDO entity deletion works: True", + # Radius Weight Modifier Component + "Radius Weight Modifier Entity successfully created", + "Radius Weight Modifier_test: Component added to the entity: True", + "Radius Weight Modifier_test: Component removed after UNDO: True", + "Radius Weight Modifier_test: Component added after REDO: True", + "Radius Weight Modifier_test: Entered game mode: True", + "Radius Weight Modifier_test: Exit game mode: True", + "Radius Weight Modifier_test: Entity is hidden: True", + "Radius Weight Modifier_test: Entity is shown: True", + "Radius Weight Modifier_test: Entity deleted: True", + "Radius Weight Modifier_test: UNDO entity deletion works: True", + "Radius Weight Modifier_test: REDO entity deletion works: True", + # Light Component + "Light Entity successfully created", + "Light_test: Component added to the entity: True", + "Light_test: Component removed after UNDO: True", + "Light_test: Component added after REDO: True", + "Light_test: Entered game mode: True", + "Light_test: Exit game mode: True", + "Light_test: Entity is hidden: True", + "Light_test: Entity is shown: True", + "Light_test: Entity deleted: True", + "Light_test: UNDO entity deletion works: True", + "Light_test: REDO entity deletion works: True", + ] unexpected_lines = [ "failed to open", @@ -68,10 +210,11 @@ class TestAtomLevels(object): request, TEST_DIRECTORY, editor, - "hydra_AllLevels_OpenClose.py", + "hydra_AtomEditorComponentsTest_AddedToEntity.py", timeout=EDITOR_TIMEOUT, expected_lines=expected_lines, unexpected_lines=unexpected_lines, halt_on_unexpected=True, + null_renderer=True, cfg_args=cfg_args, ) diff --git a/AutomatedTesting/Levels/AtomLevels/ShadowTest/LevelData/Environment.xml b/AutomatedTesting/Levels/AtomLevels/ShadowTest/LevelData/Environment.xml deleted file mode 100644 index c8398b6257..0000000000 --- a/AutomatedTesting/Levels/AtomLevels/ShadowTest/LevelData/Environment.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/AutomatedTesting/Levels/AtomLevels/ShadowTest/LevelData/Heightmap.dat b/AutomatedTesting/Levels/AtomLevels/ShadowTest/LevelData/Heightmap.dat deleted file mode 100644 index 2bb3c003f3..0000000000 --- a/AutomatedTesting/Levels/AtomLevels/ShadowTest/LevelData/Heightmap.dat +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a8859eeafde418ffe71a29da14f5419439f9cdd598517b0de51bf1049770de44 -size 8389396 diff --git a/AutomatedTesting/Levels/AtomLevels/ShadowTest/LevelData/TerrainTexture.xml b/AutomatedTesting/Levels/AtomLevels/ShadowTest/LevelData/TerrainTexture.xml deleted file mode 100644 index f43df05b22..0000000000 --- a/AutomatedTesting/Levels/AtomLevels/ShadowTest/LevelData/TerrainTexture.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/AutomatedTesting/Levels/AtomLevels/ShadowTest/LevelData/TimeOfDay.xml b/AutomatedTesting/Levels/AtomLevels/ShadowTest/LevelData/TimeOfDay.xml deleted file mode 100644 index e4106ce437..0000000000 --- a/AutomatedTesting/Levels/AtomLevels/ShadowTest/LevelData/TimeOfDay.xml +++ /dev/null @@ -1,356 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/AutomatedTesting/Levels/AtomLevels/ShadowTest/LevelData/VegetationMap.dat b/AutomatedTesting/Levels/AtomLevels/ShadowTest/LevelData/VegetationMap.dat deleted file mode 100644 index dce5631cd0..0000000000 --- a/AutomatedTesting/Levels/AtomLevels/ShadowTest/LevelData/VegetationMap.dat +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0e6a5435c928079b27796f6b202bbc2623e7e454244ddc099a3cadf33b7cb9e9 -size 63 diff --git a/AutomatedTesting/Levels/AtomLevels/ShadowTest/ShadowTest.ly b/AutomatedTesting/Levels/AtomLevels/ShadowTest/ShadowTest.ly deleted file mode 100644 index 34d7254d5e..0000000000 --- a/AutomatedTesting/Levels/AtomLevels/ShadowTest/ShadowTest.ly +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c19dc62e3349a435a6760fd532b28c9a86c626e800687bb585038adf48a16397 -size 9146 diff --git a/AutomatedTesting/Levels/AtomLevels/ShadowTest/TerrainTexture.pak b/AutomatedTesting/Levels/AtomLevels/ShadowTest/TerrainTexture.pak deleted file mode 100644 index fe3604a050..0000000000 --- a/AutomatedTesting/Levels/AtomLevels/ShadowTest/TerrainTexture.pak +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8739c76e681f900923b900c9df0ef75cf421d39cabb54650c4b9ad19b6a76d85 -size 22 diff --git a/AutomatedTesting/Levels/AtomLevels/ShadowTest/filelist.xml b/AutomatedTesting/Levels/AtomLevels/ShadowTest/filelist.xml deleted file mode 100644 index 502f2b5af5..0000000000 --- a/AutomatedTesting/Levels/AtomLevels/ShadowTest/filelist.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/AutomatedTesting/Levels/AtomLevels/ShadowTest/level.pak b/AutomatedTesting/Levels/AtomLevels/ShadowTest/level.pak deleted file mode 100644 index 34ec3a3cb3..0000000000 --- a/AutomatedTesting/Levels/AtomLevels/ShadowTest/level.pak +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3fc101d03df12328e2a1ddf817628963c60d3999dfd08aceb843c5e2bd0c16f7 -size 41574 diff --git a/AutomatedTesting/Levels/AtomLevels/ShadowTest/tags.txt b/AutomatedTesting/Levels/AtomLevels/ShadowTest/tags.txt deleted file mode 100644 index 0d6c1880e7..0000000000 --- a/AutomatedTesting/Levels/AtomLevels/ShadowTest/tags.txt +++ /dev/null @@ -1,12 +0,0 @@ -0,0,0,0,0,0 -0,0,0,0,0,0 -0,0,0,0,0,0 -0,0,0,0,0,0 -0,0,0,0,0,0 -0,0,0,0,0,0 -0,0,0,0,0,0 -0,0,0,0,0,0 -0,0,0,0,0,0 -0,0,0,0,0,0 -0,0,0,0,0,0 -0,0,0,0,0,0 diff --git a/AutomatedTesting/Levels/AtomLevels/ShadowTest/terrain/cover.ctc b/AutomatedTesting/Levels/AtomLevels/ShadowTest/terrain/cover.ctc deleted file mode 100644 index 5c869c6533..0000000000 --- a/AutomatedTesting/Levels/AtomLevels/ShadowTest/terrain/cover.ctc +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fdab340ad6c6dc6c1167e31afa061684be083360fc4108fa9f1fa4b15fe95d8c -size 1310792