diff --git a/AutomatedTesting/Gem/PythonTests/CMakeLists.txt b/AutomatedTesting/Gem/PythonTests/CMakeLists.txt index e4b68b6120..86bcb967ab 100644 --- a/AutomatedTesting/Gem/PythonTests/CMakeLists.txt +++ b/AutomatedTesting/Gem/PythonTests/CMakeLists.txt @@ -129,11 +129,10 @@ endif() NAME AutomatedTesting::PrefabTests TEST_SUITE main TEST_SERIAL - PATH ${CMAKE_CURRENT_LIST_DIR}/prefab/TestSuite_Active.py - TIMEOUT 3600 + PATH ${CMAKE_CURRENT_LIST_DIR}/prefab/TestSuite_Main.py + TIMEOUT 1500 RUNTIME_DEPENDENCIES Legacy::Editor - Legacy::CryRenderNULL AZ::AssetProcessor AutomatedTesting.Assets ) diff --git a/AutomatedTesting/Gem/PythonTests/prefab/PrefabLevel_OpensLevelWithEntities.py b/AutomatedTesting/Gem/PythonTests/prefab/PrefabLevel_OpensLevelWithEntities.py index 45f44474e1..ca59bbc2f8 100644 --- a/AutomatedTesting/Gem/PythonTests/prefab/PrefabLevel_OpensLevelWithEntities.py +++ b/AutomatedTesting/Gem/PythonTests/prefab/PrefabLevel_OpensLevelWithEntities.py @@ -9,22 +9,19 @@ remove or modify any license notices. This file is distributed on an "AS IS" BAS WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. """ - # fmt:off -class Tests (): +class Tests(): find_empty_entity = ("Entity: 'EmptyEntity' found", "Entity: 'EmptyEntity' *not* found in level") - empty_entity_pos = ( - "'EmptyEntity' position is at the expected position", "'EmptyEntity' position is *not* at the expected position") + empty_entity_pos = ("'EmptyEntity' position is at the expected position", "'EmptyEntity' position is *not* at the expected position") find_pxentity = ("Entity: 'EntityWithPxCollider' found", "Entity: 'EntityWithPxCollider' *not* found in level") - pxentity_component = ( - "Entity: 'EntityWithPxCollider' has a Physx Collider", "Entity: 'EntityWithPxCollider' has *not* a Physx Collider") + pxentity_component = ("Entity: 'EntityWithPxCollider' has a Physx Collider", "Entity: 'EntityWithPxCollider' has *not* a Physx Collider") # fmt:on -def PrefabLevel_OpensLevelWithEntities (): +def PrefabLevel_OpensLevelWithEntities(): """ Opens the level that contains 2 entities, "EmptyEntity" and "EntityWithPxCollider". - This test makes sure that both entities exist after openning the level and that: + This test makes sure that both entities exist after opening the level and that: - EmptyEntity is at Position: (10, 20, 30) - EntityWithPxCollider has a PhysXCollider component """ @@ -37,42 +34,41 @@ def PrefabLevel_OpensLevelWithEntities (): import editor_python_test_tools.hydra_editor_utils as hydra - import azlmbr.legacy.general as general - import azlmbr.bus + import azlmbr.entity as entity + import azlmbr.bus as bus from azlmbr.math import Vector3 - EXPECTED_EMPTY_ENTITY_POS = Vector3 (10.00, 20.0, 30.0) - - helper.init_idle () - helper.open_level ("prefab", "PrefabLevel_OpensLevelWithEntities") + EXPECTED_EMPTY_ENTITY_POS = Vector3(10.00, 20.0, 30.0) - class EmptyEntity (): - value = None + helper.init_idle() + helper.open_level("prefab", "PrefabLevel_OpensLevelWithEntities") - def find_empty_entity (): - EmptyEntity.value = general.find_editor_entity ("EmptyEntity") - return EmptyEntity.value.IsValid () + def find_entity(entity_name): + searchFilter = entity.SearchFilter() + searchFilter.names = [entity_name] + entityIds = entity.SearchBus(bus.Broadcast, 'SearchEntities', searchFilter) + if entityIds[0].IsValid(): + return entityIds[0] + return None - helper.wait_for_condition (find_empty_entity, 5.0) - Report.result (Tests.find_empty_entity, EmptyEntity.value.IsValid ()) + helper.wait_for_condition(lambda: find_entity("EmptyEntity").IsValid(), 5.0) + empty_entity_id = find_entity("EmptyEntity") + Report.result(Tests.find_empty_entity, empty_entity_id.IsValid()) - empty_entity_pos = azlmbr.components.TransformBus (azlmbr.bus.Event, "GetWorldTranslation", EmptyEntity.value) - is_at_position = empty_entity_pos.IsClose (EXPECTED_EMPTY_ENTITY_POS) - Report.result (Tests.empty_entity_pos, is_at_position) + empty_entity_pos = azlmbr.components.TransformBus(azlmbr.bus.Event, "GetWorldTranslation", empty_entity_id) + is_at_position = empty_entity_pos.IsClose(EXPECTED_EMPTY_ENTITY_POS) + Report.result(Tests.empty_entity_pos, is_at_position) if not is_at_position: - Report.info (f'Expected position: {EXPECTED_EMPTY_ENTITY_POS.ToString ()}, actual position: {empty_entity_pos.ToString ()}') - - pxentity = general.find_editor_entity ("EntityWithPxCollider") - Report.result (Tests.find_pxentity, pxentity.IsValid ()) + Report.info(f'Expected position: {EXPECTED_EMPTY_ENTITY_POS.ToString()}, actual position: {empty_entity_pos.ToString()}') - pxcollider_id = hydra.get_component_type_id ("PhysX Collider") - hasComponent = azlmbr.editor.EditorComponentAPIBus (azlmbr.bus.Broadcast, 'HasComponentOfType', pxentity, - pxcollider_id) - Report.result (Tests.pxentity_component, hasComponent) + pxentity = find_entity("EntityWithPxCollider") + Report.result(Tests.find_pxentity, pxentity.IsValid()) + pxcollider_id = hydra.get_component_type_id("PhysX Collider") + hasComponent = azlmbr.editor.EditorComponentAPIBus(azlmbr.bus.Broadcast, 'HasComponentOfType', pxentity, pxcollider_id) + Report.result(Tests.pxentity_component, hasComponent) if __name__ == "__main__": from editor_python_test_tools.utils import Report Report.start_test (PrefabLevel_OpensLevelWithEntities) - PrefabLevel_OpensLevelWithEntities () \ No newline at end of file diff --git a/AutomatedTesting/Gem/PythonTests/prefab/TestSuite_Active.py b/AutomatedTesting/Gem/PythonTests/prefab/TestSuite_Main.py similarity index 61% rename from AutomatedTesting/Gem/PythonTests/prefab/TestSuite_Active.py rename to AutomatedTesting/Gem/PythonTests/prefab/TestSuite_Main.py index 3cd0a0d43d..51c78a99e2 100644 --- a/AutomatedTesting/Gem/PythonTests/prefab/TestSuite_Active.py +++ b/AutomatedTesting/Gem/PythonTests/prefab/TestSuite_Main.py @@ -22,18 +22,14 @@ sys.path.append (os.path.dirname (os.path.abspath (__file__)) + '/../automatedte from base import TestAutomationBase - @pytest.mark.SUITE_main -@pytest.mark.parametrize ("launcher_platform", ['windows_editor']) -@pytest.mark.parametrize ("project", ["AutomatedTesting"]) -class TestAutomation (TestAutomationBase): +@pytest.mark.parametrize("launcher_platform", ['windows_editor']) +@pytest.mark.parametrize("project", ["AutomatedTesting"]) +class TestAutomation(TestAutomationBase): - def _run_prefab_test (self, request, workspace, editor, test_module): - self._run_test (request, workspace, editor, test_module, - ["--regset=/Amazon/Preferences/EnablePrefabSystem=true"]) + def _run_prefab_test(self, request, workspace, editor, test_module): + self._run_test(request, workspace, editor, test_module, ["--regset=/Amazon/Preferences/EnablePrefabSystem=true"]) - def test_PrefabLevel_OpensLevelWithEntities (self, request, workspace, editor, launcher_platform): + def test_PrefabLevel_OpensLevelWithEntities(self, request, workspace, editor, launcher_platform): from . import PrefabLevel_OpensLevelWithEntities as test_module - - - self._run_prefab_test (request, workspace, editor, test_module) \ No newline at end of file + self._run_prefab_test(request, workspace, editor, test_module) diff --git a/AutomatedTesting/Gem/PythonTests/prefab/__init__.py b/AutomatedTesting/Gem/PythonTests/prefab/__init__.py index 6ed3dc4bda..79f8fa4422 100644 --- a/AutomatedTesting/Gem/PythonTests/prefab/__init__.py +++ b/AutomatedTesting/Gem/PythonTests/prefab/__init__.py @@ -7,4 +7,4 @@ distribution (the "License"). All use of this software is governed by the Licens 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. -""" \ No newline at end of file +"""