diff --git a/AutomatedTesting/Gem/PythonTests/CMakeLists.txt b/AutomatedTesting/Gem/PythonTests/CMakeLists.txt index 6d3727195e..42fe9ac4a1 100644 --- a/AutomatedTesting/Gem/PythonTests/CMakeLists.txt +++ b/AutomatedTesting/Gem/PythonTests/CMakeLists.txt @@ -181,21 +181,23 @@ include(${pal_dir}/PAL_traits_${PAL_PLATFORM_NAME_LOWERCASE}.cmake) if(PAL_TRAIT_BUILD_TESTS_SUPPORTED AND PAL_TRAIT_BUILD_HOST_TOOLS AND PAL_TRAIT_LARGE_WORLDS_TEST_SUPPORTED) ## DynVeg ## - ly_add_pytest( - NAME AutomatedTesting::DynamicVegetationTests_Main - TEST_SERIAL - TEST_SUITE main - PATH ${CMAKE_CURRENT_LIST_DIR}/largeworlds/dyn_veg - PYTEST_MARKS "not SUITE_sandbox and not SUITE_periodic and not SUITE_benchmark" - TIMEOUT 1500 - RUNTIME_DEPENDENCIES - AZ::AssetProcessor - Legacy::Editor - AutomatedTesting.GameLauncher - AutomatedTesting.Assets - COMPONENT - LargeWorlds - ) + # Temporarily moving all tests to periodic suite - SPEC-6553 + #ly_add_pytest( + # NAME AutomatedTesting::DynamicVegetationTests_Main + # TEST_SERIAL + # TEST_SUITE main + # PATH ${CMAKE_CURRENT_LIST_DIR}/largeworlds/dyn_veg + # PYTEST_MARKS "not SUITE_sandbox and not SUITE_periodic and not SUITE_benchmark" + # TIMEOUT 1500 + # RUNTIME_DEPENDENCIES + # AZ::AssetProcessor + # Legacy::Editor + # AutomatedTesting.GameLauncher + # AutomatedTesting.Assets + # COMPONENT + # LargeWorlds + #) + ly_add_pytest( NAME AutomatedTesting::DynamicVegetationTests_Sandbox @@ -214,11 +216,11 @@ if(PAL_TRAIT_BUILD_TESTS_SUPPORTED AND PAL_TRAIT_BUILD_HOST_TOOLS AND PAL_TRAIT_ ) ly_add_pytest( - NAME AutomatedTesting::DynamicVegetationTests_Periodic + NAME AutomatedTesting::DynamicVegetationFilterTests_Periodic TEST_SERIAL TEST_SUITE periodic PATH ${CMAKE_CURRENT_LIST_DIR}/largeworlds/dyn_veg - PYTEST_MARKS "SUITE_periodic" + PYTEST_MARKS "SUITE_periodic and dynveg_filter" TIMEOUT 1500 RUNTIME_DEPENDENCIES AZ::AssetProcessor @@ -228,22 +230,97 @@ if(PAL_TRAIT_BUILD_TESTS_SUPPORTED AND PAL_TRAIT_BUILD_HOST_TOOLS AND PAL_TRAIT_ LargeWorlds ) -## LandscapeCanvas ## ly_add_pytest( - NAME AutomatedTesting::LandscapeCanvasTests_Main + NAME AutomatedTesting::DynamicVegetationModifierTests_Periodic TEST_SERIAL - TEST_SUITE main - PATH ${CMAKE_CURRENT_LIST_DIR}/largeworlds/landscape_canvas - PYTEST_MARKS "not SUITE_sandbox and not SUITE_periodic and not SUITE_benchmark" + TEST_SUITE periodic + PATH ${CMAKE_CURRENT_LIST_DIR}/largeworlds/dyn_veg + PYTEST_MARKS "SUITE_periodic and dynveg_modifier" TIMEOUT 1500 RUNTIME_DEPENDENCIES - AZ::AssetProcessor - Legacy::Editor - AutomatedTesting.Assets + AZ::AssetProcessor + Legacy::Editor + AutomatedTesting.Assets COMPONENT LargeWorlds ) + ly_add_pytest( + NAME AutomatedTesting::DynamicVegetationRegressionTests_Periodic + TEST_SERIAL + TEST_SUITE periodic + PATH ${CMAKE_CURRENT_LIST_DIR}/largeworlds/dyn_veg + PYTEST_MARKS "SUITE_periodic and dynveg_regression" + TIMEOUT 1500 + RUNTIME_DEPENDENCIES + AZ::AssetProcessor + Legacy::Editor + AutomatedTesting.Assets + COMPONENT + LargeWorlds + ) + + ly_add_pytest( + NAME AutomatedTesting::DynamicVegetationAreaTests_Periodic + TEST_SERIAL + TEST_SUITE periodic + PATH ${CMAKE_CURRENT_LIST_DIR}/largeworlds/dyn_veg + PYTEST_MARKS "SUITE_periodic and dynveg_area" + TIMEOUT 1500 + RUNTIME_DEPENDENCIES + AZ::AssetProcessor + Legacy::Editor + AutomatedTesting.Assets + COMPONENT + LargeWorlds + ) + + ly_add_pytest( + NAME AutomatedTesting::DynamicVegetationMiscTests_Periodic + TEST_SERIAL + TEST_SUITE periodic + PATH ${CMAKE_CURRENT_LIST_DIR}/largeworlds/dyn_veg + PYTEST_MARKS "SUITE_periodic and dynveg_misc" + TIMEOUT 1500 + RUNTIME_DEPENDENCIES + AZ::AssetProcessor + Legacy::Editor + AutomatedTesting.Assets + COMPONENT + LargeWorlds + ) + + ly_add_pytest( + NAME AutomatedTesting::DynamicVegetationSurfaceTagTests_Periodic + TEST_SERIAL + TEST_SUITE periodic + PATH ${CMAKE_CURRENT_LIST_DIR}/largeworlds/dyn_veg + PYTEST_MARKS "SUITE_periodic and dynveg_surfacetagemitter" + TIMEOUT 1500 + RUNTIME_DEPENDENCIES + AZ::AssetProcessor + Legacy::Editor + AutomatedTesting.Assets + COMPONENT + LargeWorlds + ) +## LandscapeCanvas ## + # Temporarily moving all tests to periodic suite - SPEC-6553 + #ly_add_pytest( + # NAME AutomatedTesting::LandscapeCanvasTests_Main + # TEST_SERIAL + # TEST_SUITE main + # PATH ${CMAKE_CURRENT_LIST_DIR}/largeworlds/landscape_canvas + # PYTEST_MARKS "not SUITE_sandbox and not SUITE_periodic and not SUITE_benchmark" + # TIMEOUT 1500 + # RUNTIME_DEPENDENCIES + # AZ::AssetProcessor + # Legacy::Editor + # AutomatedTesting.Assets + # COMPONENT + # LargeWorlds + #) + ly_add_pytest( NAME AutomatedTesting::LandscapeCanvasTests_Periodic TEST_SERIAL diff --git a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/EditorScripts/DynamicSliceInstanceSpawner_DynamicSliceSpawnerWorks.py b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/EditorScripts/DynamicSliceInstanceSpawner_DynamicSliceSpawnerWorks.py index 0be220cad0..466cd610e4 100755 --- a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/EditorScripts/DynamicSliceInstanceSpawner_DynamicSliceSpawnerWorks.py +++ b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/EditorScripts/DynamicSliceInstanceSpawner_DynamicSliceSpawnerWorks.py @@ -114,11 +114,8 @@ class TestDynamicSliceInstanceSpawner(EditorTestHelper): # This should result in 400 instances, since our box is 16 m x 16 m and by default the veg system plants # 20 instances per 16 meters spawner_entity.get_set_test(0, 'Configuration|Allow Empty Assets', True) - general.idle_wait(1.0) num_expected_instances = 20 * 20 - box = azlmbr.shape.ShapeComponentRequestsBus(bus.Event, 'GetEncompassingAabb', spawner_entity.id) - num_found = azlmbr.areasystem.AreaSystemRequestBus(bus.Broadcast, 'GetInstanceCountInAabb', box) - property_tree_success = property_tree_success and (num_found == num_expected_instances) + property_tree_success = property_tree_success and self.wait_for_condition(lambda: dynveg.validate_instance_count_in_entity_shape(spawner_entity.id, num_expected_instances), 5.0) self.test_success = self.test_success and property_tree_success self.log(f'Property Tree spawner type test: {property_tree_success}') @@ -127,10 +124,8 @@ class TestDynamicSliceInstanceSpawner(EditorTestHelper): # Since we have an empty slice path, we should have 0 instances once we disable 'Allow Empty Assets' num_expected_instances = 0 allow_empty_assets_success = allow_empty_assets_success and spawner_entity.get_set_test(0, 'Configuration|Allow Empty Assets', False) - general.idle_wait(1.0) - num_found = azlmbr.areasystem.AreaSystemRequestBus(bus.Broadcast, 'GetInstanceCountInAabb', box) - self.log(f'Allow Empty Assets test: Found {num_found} instances -- Expected {num_expected_instances} instances') - allow_empty_assets_success = allow_empty_assets_success and (num_found == num_expected_instances) + self.log('Allow Empty Assets test:') + allow_empty_assets_success = allow_empty_assets_success and self.wait_for_condition(lambda: dynveg.validate_instance_count_in_entity_shape(spawner_entity.id, num_expected_instances), 5.0) self.test_success = self.test_success and allow_empty_assets_success self.log(f'Allow Empty Assets test: {allow_empty_assets_success}') @@ -143,10 +138,8 @@ class TestDynamicSliceInstanceSpawner(EditorTestHelper): descriptor = hydra.get_component_property_value(spawner_entity.components[2], 'Configuration|Embedded Assets|[0]') descriptor.spawner = dynamic_slice_spawner spawns_slices_success = spawns_slices_success and spawner_entity.get_set_test(2, "Configuration|Embedded Assets|[0]", descriptor) - general.idle_wait(1.0) - num_found = azlmbr.areasystem.AreaSystemRequestBus(bus.Broadcast, 'GetInstanceCountInAabb', box) - self.log(f'Spawn dynamic slices test: Found {num_found} instances -- Expected {num_expected_instances} instances') - spawns_slices_success = spawns_slices_success and (num_found == num_expected_instances) + self.log('Spawn dynamic slices test:') + spawns_slices_success = spawns_slices_success and self.wait_for_condition(lambda: dynveg.validate_instance_count_in_entity_shape(spawner_entity.id, num_expected_instances), 5.0) self.test_success = self.test_success and spawns_slices_success self.log(f'Spawn dynamic slices test: {spawns_slices_success}') diff --git a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/EditorScripts/EmptyInstanceSpawner_EmptySpawnerWorks.py b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/EditorScripts/EmptyInstanceSpawner_EmptySpawnerWorks.py index 161ad038a5..dc353aca1a 100755 --- a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/EditorScripts/EmptyInstanceSpawner_EmptySpawnerWorks.py +++ b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/EditorScripts/EmptyInstanceSpawner_EmptySpawnerWorks.py @@ -100,21 +100,15 @@ class TestEmptyInstanceSpawner(EditorTestHelper): # This should result in 400 instances, since our box is 16 m x 16 m and by default the veg system plants # 20 instances per 16 meters - general.idle_wait(2.0) num_expected_instances = 20 * 20 - box = azlmbr.shape.ShapeComponentRequestsBus(bus.Event, 'GetEncompassingAabb', spawner_entity.id) - num_found = azlmbr.areasystem.AreaSystemRequestBus(bus.Broadcast, 'GetInstanceCountInAabb', box) - property_tree_success = property_tree_success and (num_found == num_expected_instances) + property_tree_success = property_tree_success and self.wait_for_condition(lambda: dynveg.validate_instance_count_in_entity_shape(spawner_entity.id, num_expected_instances), 5.0) self.test_success = self.test_success and property_tree_success - self.log(f'Found {num_found} instances -- Expected {num_expected_instances} instances') self.log(f'Property Tree spawner type test: {property_tree_success}') # 6) Validate that the "Allow Empty Assets" setting doesn't affect the EmptyInstanceSpawner allow_empty_assets_success = True spawner_entity.get_set_test(0, 'Configuration|Allow Empty Assets', False) - general.idle_wait(2.0) - num_found = azlmbr.areasystem.AreaSystemRequestBus(bus.Broadcast, 'GetInstanceCountInAabb', box) - allow_empty_assets_success = allow_empty_assets_success and (num_found == num_expected_instances) + allow_empty_assets_success = allow_empty_assets_success and self.wait_for_condition(lambda: dynveg.validate_instance_count_in_entity_shape(spawner_entity.id, num_expected_instances), 5.0) self.test_success = self.test_success and allow_empty_assets_success self.log(f'Allow Empty Assets test: {allow_empty_assets_success}') diff --git a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_AltitudeFilter.py b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_AltitudeFilter.py index 2db8534696..17a5f72863 100755 --- a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_AltitudeFilter.py +++ b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_AltitudeFilter.py @@ -37,6 +37,7 @@ class TestAltitudeFilter(object): @pytest.mark.test_case_id('C4814463', 'C4847477') @pytest.mark.SUITE_periodic + @pytest.mark.dynveg_filter def test_AltitudeFilter_ComponentAndOverrides_InstancesPlantAtSpecifiedAltitude(self, request, editor, level, launcher_platform): @@ -61,6 +62,7 @@ class TestAltitudeFilter(object): @pytest.mark.test_case_id("C4847476") @pytest.mark.SUITE_periodic + @pytest.mark.dynveg_filter def test_AltitudeFilter_ShapeSample_InstancesPlantAtSpecifiedAltitude(self, request, editor, level, launcher_platform): @@ -85,6 +87,7 @@ class TestAltitudeFilter(object): @pytest.mark.test_case_id("C4847478") @pytest.mark.SUITE_periodic + @pytest.mark.dynveg_filter @pytest.mark.xfail # LYN-3275 def test_AltitudeFilter_FilterStageToggle(self, request, editor, level, workspace, launcher_platform): cfg_args = [level] diff --git a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_AreaComponentSlices.py b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_AreaComponentSlices.py index 1353efbf2e..5f42fc6de0 100755 --- a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_AreaComponentSlices.py +++ b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_AreaComponentSlices.py @@ -52,6 +52,7 @@ class TestAreaComponents(object): @pytest.mark.test_case_id("C2627900", "C2627905", "C2627904") @pytest.mark.SUITE_periodic + @pytest.mark.dynveg_misc def test_AreaComponents_SliceCreationVisibilityToggleWorks(self, request, editor, level, workspace, launcher_platform): cfg_args = [level] diff --git a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_AssetListCombiner.py b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_AssetListCombiner.py index ad0917ca22..b40d99b100 100755 --- a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_AssetListCombiner.py +++ b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_AssetListCombiner.py @@ -38,6 +38,7 @@ class TestAssetListCombiner(object): @pytest.mark.test_case_id("C4762374", "C4762373") @pytest.mark.SUITE_periodic + @pytest.mark.dynveg_misc def test_AssetListCombiner_CombinedDescriptorsExpressInConfiguredArea(self, request, editor, level, launcher_platform): diff --git a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_AssetWeightSelector.py b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_AssetWeightSelector.py index 65472df3bc..7b34a10d66 100755 --- a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_AssetWeightSelector.py +++ b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_AssetWeightSelector.py @@ -42,6 +42,7 @@ class TestAssetWeightSelector(object): @pytest.mark.test_case_id("C6269654", "C4762368") @pytest.mark.SUITE_sandbox + @pytest.mark.dynveg_filter def test_AssetWeightSelector_InstancesExpressBasedOnWeight(self, request, editor, level, launcher_platform): expected_lines = [ diff --git a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_Debugger.py b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_Debugger.py index 45518b71fc..7466089173 100755 --- a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_Debugger.py +++ b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_Debugger.py @@ -40,6 +40,7 @@ class TestDebugger(object): @pytest.mark.test_case_id("C2789148") @pytest.mark.SUITE_periodic + @pytest.mark.dynveg_misc def test_Debugger_DebugCVarsWork(self, request, editor, level, workspace, launcher_platform): cfg_args = [level] diff --git a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_DistanceBetweenFilter.py b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_DistanceBetweenFilter.py index 3171cc032f..191f27fca0 100755 --- a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_DistanceBetweenFilter.py +++ b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_DistanceBetweenFilter.py @@ -38,6 +38,7 @@ class TestDistanceBetweenFilter(object): @pytest.mark.test_case_id("C4851066") @pytest.mark.SUITE_periodic + @pytest.mark.dynveg_filter def test_DistanceBetweenFilter_InstancesPlantAtSpecifiedRadius(self, request, editor, level, launcher_platform): expected_lines = [ @@ -58,6 +59,7 @@ class TestDistanceBetweenFilter(object): @pytest.mark.test_case_id("C4814458") @pytest.mark.SUITE_periodic + @pytest.mark.dynveg_filter def test_DistanceBetweenFilterOverrides_InstancesPlantAtSpecifiedRadius(self, request, editor, level, launcher_platform): diff --git a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_DynVeg_Regressions.py b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_DynVeg_Regressions.py index b3cf344b2b..5c6e034a12 100755 --- a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_DynVeg_Regressions.py +++ b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_DynVeg_Regressions.py @@ -40,6 +40,7 @@ class Test_DynVeg_Regressions(object): @pytest.mark.test_case_id("C29470845") @pytest.mark.SUITE_periodic + @pytest.mark.dynveg_regression def test_SurfaceDataRefreshes_RemainsStable(self, request, editor, level, launcher_platform): expected_lines = [ diff --git a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_DynamicSliceInstanceSpawner.py b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_DynamicSliceInstanceSpawner.py index f0673a9438..9898570692 100755 --- a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_DynamicSliceInstanceSpawner.py +++ b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_DynamicSliceInstanceSpawner.py @@ -41,7 +41,8 @@ class TestDynamicSliceInstanceSpawner(object): return console @pytest.mark.test_case_id("C28851763") - @pytest.mark.SUITE_sandbox + @pytest.mark.SUITE_periodic + @pytest.mark.dynveg_area @pytest.mark.parametrize("launcher_platform", ['windows_editor']) def test_DynamicSliceInstanceSpawner_DynamicSliceSpawnerWorks(self, request, editor, level, workspace, project, launcher_platform): @@ -66,6 +67,7 @@ class TestDynamicSliceInstanceSpawner(object): @pytest.mark.test_case_id('C2574330') @pytest.mark.BAT @pytest.mark.SUITE_periodic + @pytest.mark.dynveg_area @pytest.mark.parametrize("launcher_platform", ['windows_editor']) def test_DynamicSliceInstanceSpawner_Embedded_E2E_Editor(self, workspace, request, editor, level, project, launcher_platform): @@ -85,6 +87,7 @@ class TestDynamicSliceInstanceSpawner(object): @pytest.mark.test_case_id('C2574330') @pytest.mark.BAT @pytest.mark.SUITE_periodic + @pytest.mark.dynveg_area @pytest.mark.parametrize("launcher_platform", ['windows']) @pytest.mark.skip # ATOM-14703 def test_DynamicSliceInstanceSpawner_Embedded_E2E_Launcher(self, workspace, launcher, level, @@ -101,6 +104,7 @@ class TestDynamicSliceInstanceSpawner(object): @pytest.mark.test_case_id('C4762367') @pytest.mark.SUITE_periodic + @pytest.mark.dynveg_area @pytest.mark.parametrize("launcher_platform", ['windows_editor']) def test_DynamicSliceInstanceSpawner_External_E2E_Editor(self, workspace, request, editor, level, project, launcher_platform): @@ -119,6 +123,7 @@ class TestDynamicSliceInstanceSpawner(object): @pytest.mark.test_case_id('C4762367') @pytest.mark.SUITE_periodic + @pytest.mark.dynveg_area @pytest.mark.parametrize("launcher_platform", ['windows']) @pytest.mark.skip # ATOM-14703 def test_DynamicSliceInstanceSpawner_External_E2E_Launcher(self, workspace, launcher, level, diff --git a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_EmptyInstanceSpawner.py b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_EmptyInstanceSpawner.py index fc8c31fc7b..7bd8484cf4 100755 --- a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_EmptyInstanceSpawner.py +++ b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_EmptyInstanceSpawner.py @@ -36,13 +36,9 @@ class TestEmptyInstanceSpawner(object): file_system.delete([os.path.join(workspace.paths.engine_root(), project, "Levels", level)], True, True) - # Main suite needs at least one test - @pytest.mark.SUITE_main - def test_EmptyInstanceSpawner_Dummy(self, request, editor, level, workspace, project, launcher_platform): - pass - @pytest.mark.test_case_id("C28851762") - @pytest.mark.SUITE_sandbox + @pytest.mark.SUITE_periodic + @pytest.mark.dynveg_area def test_EmptyInstanceSpawner_EmptySpawnerWorks(self, request, editor, level, launcher_platform): cfg_args = [level] diff --git a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_InstanceSpawnerPriority.py b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_InstanceSpawnerPriority.py index d04b827985..53b5c3b760 100755 --- a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_InstanceSpawnerPriority.py +++ b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_InstanceSpawnerPriority.py @@ -43,6 +43,7 @@ class TestInstanceSpawnerPriority(object): @pytest.mark.test_case_id("C5747383", "C4762382") @pytest.mark.SUITE_periodic + @pytest.mark.dynveg_misc def test_InstanceSpawnerPriority_LayerAndSubPriority_HigherValuesPlantOverLower(self, request, editor, level, launcher_platform): diff --git a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_LayerBlender.py b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_LayerBlender.py index 2286238364..76b8b3cd3a 100755 --- a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_LayerBlender.py +++ b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_LayerBlender.py @@ -20,17 +20,10 @@ import pytest pytest.importorskip("ly_test_tools") -import time as time - -import editor_python_test_tools.hydra_test_utils as hydra -import ly_test_tools.launchers.launcher_helper as launcher_helper +import ly_remote_console.remote_console_commands as remote_console_commands import ly_test_tools.environment.waiter as waiter import ly_test_tools.environment.file_system as file_system -import ly_remote_console.remote_console_commands as remote_console_commands -from ly_remote_console.remote_console_commands import send_command_and_expect_response as send_command_and_expect_response - -import automatedtesting_shared.screenshot_utils as screenshot_utils -from automatedtesting_shared.network_utils import check_for_listening_port +import editor_python_test_tools.hydra_test_utils as hydra test_directory = os.path.join(os.path.dirname(__file__), "EditorScripts") @@ -58,6 +51,7 @@ class TestLayerBlender(object): @pytest.mark.test_case_id("C2627906") @pytest.mark.BAT @pytest.mark.SUITE_periodic + @pytest.mark.dynveg_area @pytest.mark.parametrize("launcher_platform", ['windows_editor']) def test_LayerBlender_E2E_Editor(self, workspace, request, editor, project, level, launcher_platform): # Make sure temp level doesn't already exist @@ -95,6 +89,7 @@ class TestLayerBlender(object): @pytest.mark.test_case_id("C2627906") @pytest.mark.BAT @pytest.mark.SUITE_periodic + @pytest.mark.dynveg_area @pytest.mark.xfail @pytest.mark.parametrize("launcher_platform", ['windows']) def test_LayerBlender_E2E_Launcher(self, workspace, project, launcher, level, remote_console_instance, diff --git a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_LayerBlocker.py b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_LayerBlocker.py index 6da0cdd6db..308f4480c5 100755 --- a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_LayerBlocker.py +++ b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_LayerBlocker.py @@ -38,6 +38,7 @@ class TestLayerBlocker(object): @pytest.mark.test_case_id("C2793772") @pytest.mark.SUITE_periodic + @pytest.mark.dynveg_area def test_LayerBlocker_InstancesBlockedInConfiguredArea(self, request, editor, level, launcher_platform): expected_lines = [ diff --git a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_LayerSpawner.py b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_LayerSpawner.py index 93149c9490..d206a962da 100755 --- a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_LayerSpawner.py +++ b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_LayerSpawner.py @@ -40,6 +40,7 @@ class TestLayerSpawner(object): @pytest.mark.test_case_id("C4762381") @pytest.mark.SUITE_periodic + @pytest.mark.dynveg_misc def test_LayerSpawner_InheritBehaviorFlag(self, request, editor, level, workspace, launcher_platform): expected_lines = [ @@ -60,6 +61,7 @@ class TestLayerSpawner(object): @pytest.mark.test_case_id("C2802020") @pytest.mark.SUITE_periodic + @pytest.mark.dynveg_misc def test_LayerSpawner_InstancesPlantInAllSupportedShapes(self, request, editor, level, launcher_platform): expected_lines = [ @@ -101,6 +103,7 @@ class TestLayerSpawner(object): @pytest.mark.test_case_id("C4765973") @pytest.mark.SUITE_periodic + @pytest.mark.dynveg_misc @pytest.mark.xfail # LYN-3275 def test_LayerSpawner_FilterStageToggle(self, request, editor, level, workspace, launcher_platform): @@ -122,6 +125,7 @@ class TestLayerSpawner(object): @pytest.mark.test_case_id("C30000751") @pytest.mark.SUITE_sandbox + @pytest.mark.dynveg_misc @pytest.mark.skip # ATOM-14828 def test_LayerSpawner_InstancesRefreshUsingCorrectViewportCamera(self, request, editor, level, launcher_platform): diff --git a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_MeshBlocker.py b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_MeshBlocker.py index c04390e647..7e1b416556 100755 --- a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_MeshBlocker.py +++ b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_MeshBlocker.py @@ -46,6 +46,7 @@ class TestMeshBlocker(object): """ @pytest.mark.test_case_id("C3980834") @pytest.mark.SUITE_periodic + @pytest.mark.dynveg_area @pytest.mark.xfail # LYN-3273 def test_MeshBlocker_InstancesBlockedByMesh(self, request, editor, level, launcher_platform): expected_lines = [ @@ -70,6 +71,7 @@ class TestMeshBlocker(object): """ @pytest.mark.test_case_id("C4766030") @pytest.mark.SUITE_periodic + @pytest.mark.dynveg_area @pytest.mark.xfail # LYN-3273 def test_MeshBlocker_InstancesBlockedByMeshHeightTuning(self, request, editor, level, launcher_platform): expected_lines = [ diff --git a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_MeshSurfaceTagEmitter.py b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_MeshSurfaceTagEmitter.py index 77638cb576..dcbffdf3b7 100755 --- a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_MeshSurfaceTagEmitter.py +++ b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_MeshSurfaceTagEmitter.py @@ -38,6 +38,7 @@ class TestMeshSurfaceTagEmitter(object): @pytest.mark.test_case_id("C2908172") @pytest.mark.SUITE_periodic + @pytest.mark.dynveg_surfacetagemitter def test_MeshSurfaceTagEmitter_DependentOnMeshComponent(self, request, editor, level, launcher_platform): expected_lines = [ @@ -66,6 +67,7 @@ class TestMeshSurfaceTagEmitter(object): @pytest.mark.test_case_id("C2908174") @pytest.mark.SUITE_periodic + @pytest.mark.dynveg_surfacetagemitter def test_MeshSurfaceTagEmitter_SurfaceTagsAddRemoveSuccessfully(self, request, editor, level, launcher_platform): expected_lines = [ diff --git a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_PhysXColliderSurfaceTagEmitter.py b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_PhysXColliderSurfaceTagEmitter.py index ca4e30a719..0f84e2caa2 100755 --- a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_PhysXColliderSurfaceTagEmitter.py +++ b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_PhysXColliderSurfaceTagEmitter.py @@ -38,6 +38,7 @@ class TestPhysXColliderSurfaceTagEmitter(object): @pytest.mark.test_case_id("C29053640") @pytest.mark.SUITE_periodic + @pytest.mark.dynveg_surfacetagemitter def test_PhysXColliderSurfaceTagEmitter_E2E_Editor(self, request, editor, level, launcher_platform): expected_lines = [ diff --git a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_PositionModifier.py b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_PositionModifier.py index ac3e0abb4f..2cf8db3b96 100755 --- a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_PositionModifier.py +++ b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_PositionModifier.py @@ -38,6 +38,7 @@ class TestPositionModifier(object): @pytest.mark.test_case_id("C4874099", "C4814461") @pytest.mark.SUITE_periodic + @pytest.mark.dynveg_modifier def test_PositionModifier_ComponentAndOverrides_InstancesPlantAtSpecifiedOffsets(self, request, editor, level, launcher_platform): @@ -60,6 +61,7 @@ class TestPositionModifier(object): @pytest.mark.test_case_id("C4874100") @pytest.mark.SUITE_sandbox + @pytest.mark.dynveg_modifier @pytest.mark.xfail # LYN-3275 def test_PositionModifier_AutoSnapToSurfaceWorks(self, request, editor, level, launcher_platform): diff --git a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_RotationModifier.py b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_RotationModifier.py index 518949c0c0..3b0c9b3947 100755 --- a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_RotationModifier.py +++ b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_RotationModifier.py @@ -42,6 +42,7 @@ class TestRotationModifier(object): @pytest.mark.test_case_id("C4896922") @pytest.mark.SUITE_periodic + @pytest.mark.dynveg_modifier def test_RotationModifier_InstancesRotateWithinRange(self, request, editor, level, launcher_platform) -> None: """ Launches editor and run test script to test that rotation modifier works for all axis. @@ -71,6 +72,7 @@ class TestRotationModifier(object): @pytest.mark.test_case_id("C4814460") @pytest.mark.SUITE_periodic + @pytest.mark.dynveg_modifier def test_RotationModifierOverrides_InstancesRotateWithinRange(self, request, editor, level, launcher_platform) -> None: expected_lines = [ diff --git a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_ScaleModifier.py b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_ScaleModifier.py index 6acd95e4f6..7fe7a4ece2 100755 --- a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_ScaleModifier.py +++ b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_ScaleModifier.py @@ -41,6 +41,7 @@ class TestScaleOverrideWorksSuccessfully(object): @pytest.mark.test_case_id("C4814462") @pytest.mark.SUITE_periodic + @pytest.mark.dynveg_modifier def test_ScaleModifierOverrides_InstancesProperlyScale(self, request, editor, level, launcher_platform): expected_lines = [ @@ -70,6 +71,7 @@ class TestScaleOverrideWorksSuccessfully(object): @pytest.mark.test_case_id("C4896937") @pytest.mark.SUITE_periodic + @pytest.mark.dynveg_modifier def test_ScaleModifier_InstancesProperlyScale(self, request, editor, level, launcher_platform): expected_lines = [ diff --git a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_ShapeIntersectionFilter.py b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_ShapeIntersectionFilter.py index ea90b67a7f..8acdb1b644 100755 --- a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_ShapeIntersectionFilter.py +++ b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_ShapeIntersectionFilter.py @@ -38,6 +38,7 @@ class TestShapeIntersectionFilter(object): @pytest.mark.test_case_id("C4874094") @pytest.mark.SUITE_periodic + @pytest.mark.dynveg_filter def test_ShapeIntersectionFilter_InstancesPlantInAssignedShape(self, request, editor, level, launcher_platform): expected_lines = [ diff --git a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_SlopeAlignmentModifier.py b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_SlopeAlignmentModifier.py index 563ac1dcc5..6825686509 100755 --- a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_SlopeAlignmentModifier.py +++ b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_SlopeAlignmentModifier.py @@ -41,6 +41,7 @@ class TestSlopeAlignmentModifier(object): @pytest.mark.test_case_id("C4896941") @pytest.mark.SUITE_periodic + @pytest.mark.dynveg_modifier @pytest.mark.skip # ATOM-14299 def test_SlopeAlignmentModifier_InstanceSurfaceAlignment(self, request, editor, level, launcher_platform): @@ -63,6 +64,7 @@ class TestSlopeAlignmentModifier(object): @pytest.mark.test_case_id("C4814459") @pytest.mark.SUITE_periodic + @pytest.mark.dynveg_modifier @pytest.mark.skip # ATOM-14299 def test_SlopeAlignmentModifierOverrides_InstanceSurfaceAlignment(self, request, editor, level, launcher_platform): diff --git a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_SlopeFilter.py b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_SlopeFilter.py index dc0f0e6514..48e532adcd 100755 --- a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_SlopeFilter.py +++ b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_SlopeFilter.py @@ -39,6 +39,7 @@ class TestSlopeFilter(object): @pytest.mark.test_case_id("C4874097") @pytest.mark.SUITE_periodic + @pytest.mark.dynveg_filter def test_SlopeFilter_FilterStageToggle(self, request, editor, level, workspace, launcher_platform): cfg_args = [level] @@ -70,6 +71,7 @@ class TestSlopeFilter(object): @pytest.mark.test_case_id("C4814464", "C4874096") @pytest.mark.SUITE_periodic + @pytest.mark.dynveg_filter @pytest.mark.skip # LYN-2211 def test_SlopeFilter_ComponentAndOverrides_InstancesPlantOnValidSlopes(self, request, editor, level, launcher_platform): diff --git a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_SurfaceMaskFilter.py b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_SurfaceMaskFilter.py index 20cab85293..952c000232 100755 --- a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_SurfaceMaskFilter.py +++ b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_SurfaceMaskFilter.py @@ -40,6 +40,7 @@ class TestSurfaceMaskFilter(object): # Simple validation test to ensure that SurfaceTag can be created, set to a value, and compared to another SurfaceTag. @pytest.mark.SUITE_periodic + @pytest.mark.dynveg_filter def test_SurfaceMaskFilter_BasicSurfaceTagCreation(self, request, level, editor, launcher_platform): expected_lines = [ @@ -61,6 +62,7 @@ class TestSurfaceMaskFilter(object): @pytest.mark.test_case_id("C2561342") @pytest.mark.SUITE_periodic + @pytest.mark.dynveg_filter def test_SurfaceMaskFilter_ExclusiveSurfaceTags_Function(self, request, editor, level, launcher_platform): expected_lines = [ @@ -93,6 +95,7 @@ class TestSurfaceMaskFilter(object): @pytest.mark.test_case_id("C2561341") @pytest.mark.SUITE_periodic + @pytest.mark.dynveg_filter def test_SurfaceMaskFilter_InclusiveSurfaceTags_Function(self, request, editor, level, launcher_platform): expected_lines = [ @@ -125,6 +128,7 @@ class TestSurfaceMaskFilter(object): @pytest.mark.test_case_id("C3711666") @pytest.mark.SUITE_periodic + @pytest.mark.dynveg_filter def test_SurfaceMaskFilterOverrides_MultipleDescriptorOverridesPlantAsExpected(self, request, editor, level, launcher_platform): diff --git a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_SystemSettings.py b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_SystemSettings.py index adf9a90587..0b55d06ae4 100755 --- a/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_SystemSettings.py +++ b/AutomatedTesting/Gem/PythonTests/largeworlds/dyn_veg/test_SystemSettings.py @@ -38,6 +38,7 @@ class TestSystemSettings(object): @pytest.mark.test_case_id("C2646869") @pytest.mark.SUITE_periodic + @pytest.mark.dynveg_misc def test_SystemSettings_SectorPointDensity(self, request, editor, level, launcher_platform): expected_lines = [ @@ -64,6 +65,7 @@ class TestSystemSettings(object): @pytest.mark.test_case_id("C2646870") @pytest.mark.SUITE_periodic + @pytest.mark.dynveg_misc def test_SystemSettings_SectorSize(self, request, editor, level, launcher_platform): expected_lines = [