Merge branch 'development' of https://github.com/o3de/o3de into mp_blending_cleanup

This commit is contained in:
puvvadar
2021-09-17 15:03:43 -07:00
3870 changed files with 475008 additions and 107412 deletions
@@ -0,0 +1,36 @@
---
name: Nightly Build Error bug report
about: Create a report when the nightly build process fails
title: 'Nightly Build Failure'
labels: 'needs-triage,needs-sig,kind/bug,kind/nightlybuildfailure'
---
**Describe the bug**
A clear and concise description of what the bug is.
**Failure type**
Build | Asset Processing | Test Tools | Infrastructure | Test
**To Reproduce Test Failures**
- Paste the command line that reproduces the test failure
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Logs**
Attach the Jenkins logs that are relevant to the failure
**Desktop/Device (please complete the following information):**
- Device: [e.g. PC, Mac, iPhone, Samsung]
- OS: [e.g. Windows, macOS, iOS, Android]
- Version [e.g. 10, Bug Sur, Oreo]
- CPU [e.g. Intel I9-9900k , Ryzen 5900x, ]
- GPU [AMD 6800 XT, NVidia RTX 3090]
- Memory [e.g. 16GB]
**Additional context**
Add any other context about the problem here.
+1 -1
View File
@@ -7,7 +7,7 @@ AssetProcessorTemp/**
[Oo]ut/**
CMakeUserPresets.json
[Cc]ache/
/install/
/[Ii]nstall/
Editor/EditorEventLog.xml
Editor/EditorLayout.xml
**/*egg-info/**
-6
View File
@@ -1,6 +0,0 @@
e_StatoscopeScreenshotCapturePeriod = 1
e_StatoscopeDataGroups = Oulm
sys_pakLogInvalidFileAccess = 1
e_StatoscopeWriteTimeout = 10
e_StatoscopeConnectTimeout = 10
+3 -29
View File
@@ -35,37 +35,11 @@ ly_create_alias(NAME AutomatedTesting.Servers NAMESPACE Gem TARGETS Gem::Automa
# Gem dependencies
################################################################################
# The GameLauncher uses "Clients" gem variants:
ly_enable_gems(PROJECT_NAME AutomatedTesting GEM_FILE enabled_gems.cmake
TARGETS AutomatedTesting.GameLauncher
VARIANTS Clients)
# Enable the enabled_gems for the Project:
ly_enable_gems(PROJECT_NAME AutomatedTesting GEM_FILE enabled_gems.cmake)
# If we build a server, then apply the gems to the server
# Add project to the list server projects to create the AutomatedTesting.ServerLauncher
if(PAL_TRAIT_BUILD_SERVER_SUPPORTED)
# if we're making a server, then add the "Server" gem variants to it:
ly_enable_gems(PROJECT_NAME AutomatedTesting GEM_FILE enabled_gems.cmake
TARGETS AutomatedTesting.ServerLauncher
VARIANTS Servers)
set_property(GLOBAL APPEND PROPERTY LY_LAUNCHER_SERVER_PROJECTS AutomatedTesting)
endif()
if (PAL_TRAIT_BUILD_HOST_TOOLS)
# The Editor uses "Tools" gem variants:
ly_enable_gems(
PROJECT_NAME AutomatedTesting GEM_FILE enabled_gems.cmake
TARGETS Editor
VARIANTS Tools)
# The Material Editor needs the Lyshine "Tools" gem variant for the custom LyShine pass
ly_enable_gems(
PROJECT_NAME AutomatedTesting GEMS LyShine
TARGETS MaterialEditor
VARIANTS Tools)
# The pipeline tools use "Builders" gem variants:
ly_enable_gems(
PROJECT_NAME AutomatedTesting GEM_FILE enabled_gems.cmake
TARGETS AssetBuilder AssetProcessor AssetProcessorBatch
VARIANTS Builders)
endif()
@@ -17,7 +17,7 @@
namespace PythonCoverage
{
static constexpr char* const LogCallSite = "PythonCoverageEditorSystemComponent";
static constexpr const char* const LogCallSite = "PythonCoverageEditorSystemComponent";
void PythonCoverageEditorSystemComponent::Reflect(AZ::ReflectContext* context)
{
@@ -17,15 +17,15 @@ if(PAL_TRAIT_BUILD_TESTS_SUPPORTED AND PAL_TRAIT_BUILD_HOST_TOOLS)
return()
endif()
# Enable after installing NodeJS and CDK on jenkins Windows AMI.
ly_add_pytest(
NAME AutomatedTesting::AWSTests
TEST_SUITE periodic
TEST_SUITE awsi
TEST_SERIAL
PATH ${CMAKE_CURRENT_LIST_DIR}/${PAL_PLATFORM_NAME}/
RUNTIME_DEPENDENCIES
Legacy::Editor
AZ::AssetProcessor
AutomatedTesting.GameLauncher
AutomatedTesting.Assets
COMPONENT
AWS
+12 -10
View File
@@ -8,19 +8,21 @@
## Deploy CDK Applications
1. Go to the AWS IAM console and create an IAM role called o3de-automation-tests which adds your own account as as a trusted entity and uses the "AdministratorAccess" permissions policy.
2. Copy {engine_root}\scripts\build\Platform\Windows\deploy_cdk_applications.cmd to your engine root folder.
3. Open a Command Prompt window at the engine root and set the following environment variables:
Set O3DE_AWS_PROJECT_NAME=AWSAUTO
Set O3DE_AWS_DEPLOY_REGION=us-east-1
Set ASSUME_ROLE_ARN="arn:aws:iam::{your_aws_account_id}:role/o3de-automation-tests"
Set COMMIT_ID=HEAD
4. Deploy the CDK applications for AWS gems by running deploy_cdk_applications.cmd in the same Command Prompt window.
5. Edit AWS\common\constants.py to replace the assume role ARN with your own:
arn:aws:iam::{your_aws_account_id}:role/o3de-automation-tests
3. Open a new Command Prompt window at the engine root and set the following environment variables:
Set O3DE_AWS_PROJECT_NAME=AWSAUTO
Set O3DE_AWS_DEPLOY_REGION=us-east-1
Set ASSUME_ROLE_ARN=arn:aws:iam::{your_aws_account_id}:role/o3de-automation-tests
Set COMMIT_ID=HEAD
4. In the same Command Prompt window, Deploy the CDK applications for AWS gems by running deploy_cdk_applications.cmd.
## Run Automation Tests
### CLI
Open a Command Prompt window at the engine root and run the following CLI command:
In the same Command Prompt window, run the following CLI command:
python\python.cmd -m pytest {path_to_the_test_file} --build-directory {directory_to_the_profile_build}
### Pycharm
You can also run any specific automation test directly from Pycharm by providing the "--build-directory" argument in the Run Configuration.
You can also run any specific automation test directly from Pycharm by providing the "--build-directory" argument in the Run Configuration.
## Destroy CDK Applications
1. Copy {engine_root}\scripts\build\Platform\Windows\destroy_cdk_applications.cmd to your engine root folder.
2. In the same Command Prompt window, destroy the CDK applications for AWS gems by running destroy_cdk_applications.cmd.
@@ -31,7 +31,7 @@ def setup(launcher: pytest.fixture,
Set up the resource mapping configuration and start the log monitor.
:param launcher: Client launcher for running the test level.
:param asset_processor: asset_processor fixture.
:return log monitor object, metrics file path and the metrics stack name.
:return log monitor object.
"""
asset_processor.start()
asset_processor.wait_for_idle()
@@ -73,12 +73,11 @@ def monitor_metrics_submission(log_monitor: pytest.fixture) -> None:
f'unexpected_lines values: {unexpected_lines}')
def query_metrics_from_s3(aws_metrics_utils: pytest.fixture, resource_mappings: pytest.fixture, stack_name: str) -> None:
def query_metrics_from_s3(aws_metrics_utils: pytest.fixture, resource_mappings: pytest.fixture) -> None:
"""
Verify that the metrics events are delivered to the S3 bucket and can be queried.
:param aws_metrics_utils: aws_metrics_utils fixture.
:param resource_mappings: resource_mappings fixture.
:param stack_name: name of the CloudFormation stack.
"""
aws_metrics_utils.verify_s3_delivery(
resource_mappings.get_resource_name_id('AWSMetrics.AnalyticsBucketName')
@@ -89,23 +88,24 @@ def query_metrics_from_s3(aws_metrics_utils: pytest.fixture, resource_mappings:
resource_mappings.get_resource_name_id('AWSMetrics.EventsCrawlerName'))
# Remove the events_json table if exists so that the sample query can create a table with the same name.
aws_metrics_utils.delete_table(f'{stack_name}-eventsdatabase', 'events_json')
aws_metrics_utils.run_named_queries(f'{stack_name}-AthenaWorkGroup')
aws_metrics_utils.delete_table(resource_mappings.get_resource_name_id('AWSMetrics.EventDatabaseName'), 'events_json')
aws_metrics_utils.run_named_queries(resource_mappings.get_resource_name_id('AWSMetrics.AthenaWorkGroupName'))
logger.info('Query metrics from S3 successfully.')
def verify_operational_metrics(aws_metrics_utils: pytest.fixture, stack_name: str, start_time: datetime) -> None:
def verify_operational_metrics(aws_metrics_utils: pytest.fixture,
resource_mappings: pytest.fixture, start_time: datetime) -> None:
"""
Verify that operational health metrics are delivered to CloudWatch.
aws_metrics_utils: aws_metrics_utils fixture.
stack_name: name of the CloudFormation stack.
start_time: Time when the game launcher starts.
:param aws_metrics_utils: aws_metrics_utils fixture.
:param resource_mappings: resource_mappings fixture.
:param start_time: Time when the game launcher starts.
"""
aws_metrics_utils.verify_cloud_watch_delivery(
'AWS/Lambda',
'Invocations',
[{'Name': 'FunctionName',
'Value': f'{stack_name}-AnalyticsProcessingLambda'}],
'Value': resource_mappings.get_resource_name_id('AWSMetrics.AnalyticsProcessingLambdaName')}],
start_time)
logger.info('AnalyticsProcessingLambda metrics are sent to CloudWatch.')
@@ -113,7 +113,7 @@ def verify_operational_metrics(aws_metrics_utils: pytest.fixture, stack_name: st
'AWS/Lambda',
'Invocations',
[{'Name': 'FunctionName',
'Value': f'{stack_name}-EventsProcessingLambda'}],
'Value': resource_mappings.get_resource_name_id('AWSMetrics.EventProcessingLambdaName')}],
start_time)
logger.info('EventsProcessingLambda metrics are sent to CloudWatch.')
@@ -133,13 +133,12 @@ def update_kinesis_analytics_application_status(aws_metrics_utils: pytest.fixtur
aws_metrics_utils.stop_kinesis_data_analytics_application(
resource_mappings.get_resource_name_id('AWSMetrics.AnalyticsApplicationName'))
@pytest.mark.SUITE_periodic
@pytest.mark.SUITE_awsi
@pytest.mark.usefixtures('automatic_process_killer')
@pytest.mark.usefixtures('aws_credentials')
@pytest.mark.usefixtures('resource_mappings')
@pytest.mark.parametrize('assume_role_arn', [constants.ASSUME_ROLE_ARN])
@pytest.mark.parametrize('feature_name', [AWS_METRICS_FEATURE_NAME])
@pytest.mark.parametrize('level', ['AWS/Metrics'])
@pytest.mark.parametrize('profile_name', ['AWSAutomationTest'])
@pytest.mark.parametrize('project', ['AutomatedTesting'])
@pytest.mark.parametrize('region_name', [constants.AWS_REGION])
@@ -150,6 +149,7 @@ class TestAWSMetricsWindows(object):
"""
Test class to verify the real-time and batch analytics for metrics.
"""
@pytest.mark.parametrize('level', ['AWS/Metrics'])
def test_realtime_and_batch_analytics(self,
level: str,
launcher: pytest.fixture,
@@ -157,7 +157,6 @@ class TestAWSMetricsWindows(object):
workspace: pytest.fixture,
aws_utils: pytest.fixture,
resource_mappings: pytest.fixture,
stacks: typing.List,
aws_metrics_utils: pytest.fixture):
"""
Verify that the metrics events are sent to CloudWatch and S3 for analytics.
@@ -167,10 +166,6 @@ class TestAWSMetricsWindows(object):
args=(aws_metrics_utils, resource_mappings, True))
kinesis_analytics_application_thread.start()
# Clear the analytics bucket objects before sending new metrics.
aws_metrics_utils.empty_bucket(
resource_mappings.get_resource_name_id('AWSMetrics.AnalyticsBucketName'))
log_monitor = setup(launcher, asset_processor)
# Kinesis analytics application needs to be in the running state before we start the game launcher.
@@ -193,10 +188,10 @@ class TestAWSMetricsWindows(object):
operational_threads = list()
operational_threads.append(
AWSMetricsThread(target=query_metrics_from_s3,
args=(aws_metrics_utils, resource_mappings, stacks[0])))
args=(aws_metrics_utils, resource_mappings)))
operational_threads.append(
AWSMetricsThread(target=verify_operational_metrics,
args=(aws_metrics_utils, stacks[0], start_time)))
args=(aws_metrics_utils, resource_mappings, start_time)))
operational_threads.append(
AWSMetricsThread(target=update_kinesis_analytics_application_status,
args=(aws_metrics_utils, resource_mappings, False)))
@@ -205,6 +200,7 @@ class TestAWSMetricsWindows(object):
for thread in operational_threads:
thread.join()
@pytest.mark.parametrize('level', ['AWS/Metrics'])
def test_unauthorized_user_request_rejected(self,
level: str,
launcher: pytest.fixture,
@@ -227,3 +223,13 @@ class TestAWSMetricsWindows(object):
halt_on_unexpected=True)
assert result, 'Metrics events are sent successfully by unauthorized user'
logger.info('Unauthorized user is rejected to send metrics.')
def test_clean_up_s3_bucket(self,
aws_utils: pytest.fixture,
resource_mappings: pytest.fixture,
aws_metrics_utils: pytest.fixture):
"""
Clear the analytics bucket objects so that the S3 bucket can be destroyed during tear down.
"""
aws_metrics_utils.empty_bucket(
resource_mappings.get_resource_name_id('AWSMetrics.AnalyticsBucketName'))
@@ -21,7 +21,7 @@ AWS_CLIENT_AUTH_FEATURE_NAME = 'AWSClientAuth'
logger = logging.getLogger(__name__)
@pytest.mark.SUITE_periodic
@pytest.mark.SUITE_awsi
@pytest.mark.usefixtures('asset_processor')
@pytest.mark.usefixtures('automatic_process_killer')
@pytest.mark.usefixtures('aws_utils')
@@ -74,7 +74,7 @@ def write_test_data_to_dynamodb_table(resource_mappings: pytest.fixture, aws_uti
raise
@pytest.mark.SUITE_periodic
@pytest.mark.SUITE_awsi
@pytest.mark.usefixtures('automatic_process_killer')
@pytest.mark.usefixtures('asset_processor')
@pytest.mark.parametrize('feature_name', [AWS_CORE_FEATURE_NAME])
@@ -8,10 +8,10 @@
if(PAL_TRAIT_BUILD_TESTS_SUPPORTED AND PAL_TRAIT_BUILD_HOST_TOOLS)
ly_add_pytest(
NAME AutomatedTesting::BlastTests
NAME AutomatedTesting::BlastTests_Main
TEST_SUITE main
TEST_SERIAL TRUE
PATH ${CMAKE_CURRENT_LIST_DIR}/TestSuite_Active.py
PATH ${CMAKE_CURRENT_LIST_DIR}/TestSuite_Main.py
RUNTIME_DEPENDENCIES
Legacy::Editor
AZ::AssetProcessor
@@ -1,11 +0,0 @@
"""
Copyright (c) Contributors to the Open 3D Engine Project.
For complete copyright and license terms please see the LICENSE at the root of this distribution.
SPDX-License-Identifier: Apache-2.0 OR MIT
"""
def init():
import os
import sys
sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/../automatedtesting_shared')
@@ -22,29 +22,29 @@ from base import TestAutomationBase
@pytest.mark.parametrize("project", ["AutomatedTesting"])
class TestAutomation(TestAutomationBase):
def test_ActorSplitsAfterCollision(self, request, workspace, editor, launcher_platform):
from . import ActorSplitsAfterCollision as test_module
from .tests import Blast_ActorSplitsAfterCollision as test_module
self._run_test(request, workspace, editor, test_module)
def test_ActorSplitsAfterRadialDamage(self, request, workspace, editor, launcher_platform):
from . import ActorSplitsAfterRadialDamage as test_module
from .tests import Blast_ActorSplitsAfterRadialDamage as test_module
self._run_test(request, workspace, editor, test_module)
def test_ActorSplitsAfterCapsuleDamage(self, request, workspace, editor, launcher_platform):
from . import ActorSplitsAfterCapsuleDamage as test_module
from .tests import Blast_ActorSplitsAfterCapsuleDamage as test_module
self._run_test(request, workspace, editor, test_module)
def test_ActorSplitsAfterImpactSpreadDamage(self, request, workspace, editor, launcher_platform):
from . import ActorSplitsAfterImpactSpreadDamage as test_module
from .tests import Blast_ActorSplitsAfterImpactSpreadDamage as test_module
self._run_test(request, workspace, editor, test_module)
def test_ActorSplitsAfterShearDamage(self, request, workspace, editor, launcher_platform):
from . import ActorSplitsAfterShearDamage as test_module
from .tests import Blast_ActorSplitsAfterShearDamage as test_module
self._run_test(request, workspace, editor, test_module)
def test_ActorSplitsAfterTriangleDamage(self, request, workspace, editor, launcher_platform):
from . import ActorSplitsAfterTriangleDamage as test_module
from .tests import Blast_ActorSplitsAfterTriangleDamage as test_module
self._run_test(request, workspace, editor, test_module)
def test_ActorSplitsAfterStressDamage(self, request, workspace, editor, launcher_platform):
from . import ActorSplitsAfterStressDamage as test_module
from .tests import Blast_ActorSplitsAfterStressDamage as test_module
self._run_test(request, workspace, editor, test_module)
@@ -41,11 +41,7 @@ def base_run(damage_func):
:return: None
"""
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
@@ -9,10 +9,8 @@ import os
import sys
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
from ActorSplitsAfterDamage import Tests
def ActorSplitsAfterCapsuleDamage():
from ActorSplitsAfterDamage import base_run as internal_run
def Blast_ActorSplitsAfterCapsuleDamage():
from BaseDamageTest import base_run as internal_run
from BlastUtils import Constants
def CapsuleDamage(target_id, position0):
@@ -26,8 +24,5 @@ def ActorSplitsAfterCapsuleDamage():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(ActorSplitsAfterCapsuleDamage)
Report.start_test(Blast_ActorSplitsAfterCapsuleDamage)
@@ -18,7 +18,7 @@ class Tests():
# fmt: on
def ActorSplitsAfterCollision():
def Blast_ActorSplitsAfterCollision():
"""
Summary:
@@ -46,10 +46,6 @@ def ActorSplitsAfterCollision():
:return: None
"""
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
@@ -103,8 +99,5 @@ def ActorSplitsAfterCollision():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(ActorSplitsAfterCollision)
Report.start_test(Blast_ActorSplitsAfterCollision)
@@ -9,10 +9,8 @@ import os
import sys
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
from ActorSplitsAfterDamage import Tests
def ActorSplitsAfterImpactSpreadDamage():
from ActorSplitsAfterDamage import base_run as internal_run
def Blast_ActorSplitsAfterImpactSpreadDamage():
from BaseDamageTest import base_run as internal_run
from BlastUtils import Constants
def ImpactSpreadDamage(target_id, position):
@@ -24,8 +22,5 @@ def ActorSplitsAfterImpactSpreadDamage():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(ActorSplitsAfterImpactSpreadDamage)
Report.start_test(Blast_ActorSplitsAfterImpactSpreadDamage)
@@ -9,10 +9,8 @@ import os
import sys
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
from ActorSplitsAfterDamage import Tests
def ActorSplitsAfterRadialDamage():
from ActorSplitsAfterDamage import base_run as internal_run
def Blast_ActorSplitsAfterRadialDamage():
from BaseDamageTest import base_run as internal_run
from BlastUtils import Constants
def RadialDamage(target_id, position):
@@ -24,8 +22,5 @@ def ActorSplitsAfterRadialDamage():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(ActorSplitsAfterRadialDamage)
Report.start_test(Blast_ActorSplitsAfterRadialDamage)
@@ -9,10 +9,8 @@ import os
import sys
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
from ActorSplitsAfterDamage import Tests
def ActorSplitsAfterShearDamage():
from ActorSplitsAfterDamage import base_run as internal_run
def Blast_ActorSplitsAfterShearDamage():
from BaseDamageTest import base_run as internal_run
from BlastUtils import Constants
def ShearDamage(target_id, position):
@@ -25,8 +23,5 @@ def ActorSplitsAfterShearDamage():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(ActorSplitsAfterShearDamage)
Report.start_test(Blast_ActorSplitsAfterShearDamage)
@@ -9,10 +9,8 @@ import os
import sys
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
from ActorSplitsAfterDamage import Tests
def ActorSplitsAfterStressDamage():
from ActorSplitsAfterDamage import base_run as internal_run
def Blast_ActorSplitsAfterStressDamage():
from BaseDamageTest import base_run as internal_run
from BlastUtils import Constants
def StressDamage(target_id, position):
@@ -24,8 +22,5 @@ def ActorSplitsAfterStressDamage():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(ActorSplitsAfterStressDamage)
Report.start_test(Blast_ActorSplitsAfterStressDamage)
@@ -9,10 +9,8 @@ import os
import sys
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
from ActorSplitsAfterDamage import Tests
def ActorSplitsAfterTriangleDamage():
from ActorSplitsAfterDamage import base_run as internal_run
def Blast_ActorSplitsAfterTriangleDamage():
from BaseDamageTest import base_run as internal_run
from BlastUtils import Constants
def TriangleDamage(target_id, position):
@@ -28,8 +26,5 @@ def ActorSplitsAfterTriangleDamage():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(ActorSplitsAfterTriangleDamage)
Report.start_test(Blast_ActorSplitsAfterTriangleDamage)
@@ -21,7 +21,7 @@ add_subdirectory(assetpipeline)
add_subdirectory(atom_renderer)
## Physics ##
add_subdirectory(physics)
add_subdirectory(Physics)
## ScriptCanvas ##
add_subdirectory(scripting)
@@ -0,0 +1,47 @@
"""
Copyright (c) Contributors to the Open 3D Engine Project.
For complete copyright and license terms please see the LICENSE at the root of this distribution.
SPDX-License-Identifier: Apache-2.0 OR MIT
"""
# Built-in Imports
from __future__ import annotations
# Open 3D Engine Imports
import azlmbr.bus as bus
import azlmbr.asset as azasset
import azlmbr.math as math
class Asset:
"""
Used to find Asset Id by its path and path of asset by its Id
If a component has any asset property, then this class object can be called as:
asset_id = editor_python_test_tools.editor_entity_utils.EditorComponent.get_component_property_value(<arguments>)
asset = asset_utils.Asset(asset_id)
"""
def __init__(self, id: azasset.AssetId):
self.id: azasset.AssetId = id
# Creation functions
@classmethod
def find_asset_by_path(cls, path: str, RegisterType: bool = False) -> Asset:
"""
:param path: Absolute file path of the asset
:param RegisterType: Whether to register the asset if it's not in the database,
default to false for the general case
:return: Asset object associated with file path
"""
asset_id = azasset.AssetCatalogRequestBus(bus.Broadcast, "GetAssetIdByPath", path, math.Uuid(), RegisterType)
assert asset_id.is_valid(), f"Couldn't find Asset with path: {path}"
asset = cls(asset_id)
return asset
# Methods
def get_path(self) -> str:
"""
:return: Absolute file path of Asset
"""
assert self.id.is_valid(), "Invalid Asset Id"
return azasset.AssetCatalogRequestBus(bus.Broadcast, "GetAssetPathById", self.id)
@@ -20,6 +20,7 @@ import azlmbr.legacy.general as general
# Helper file Imports
from editor_python_test_tools.utils import Report
class EditorComponent:
"""
EditorComponent class used to set and get the component property value using path
@@ -28,7 +29,6 @@ class EditorComponent:
which also assigns self.id and self.type_id to the EditorComponent object.
"""
# Methods
def get_component_name(self) -> str:
"""
Used to get name of component
@@ -87,6 +87,13 @@ class EditorComponent:
outcome.IsSuccess()
), f"Failure: Could not set value to '{self.get_component_name()}' : '{component_property_path}'"
def is_enabled(self):
"""
Used to verify if the component is enabled.
:return: True if enabled, otherwise False.
"""
return editor.EditorComponentAPIBus(bus.Broadcast, "IsComponentEnabled", self.id)
@staticmethod
def get_type_ids(component_names: list) -> list:
"""
@@ -214,6 +221,12 @@ class EditorEntity:
"""
return editor.EditorEntityInfoRequestBus(bus.Event, "GetParent", self.id)
def get_children_ids(self) -> List[azlmbr.entity.EntityId]:
"""
:return: Entity ids of children. Type: [entity.EntityId()]
"""
return editor.EditorEntityInfoRequestBus(bus.Event, "GetChildren", self.id)
def add_component(self, component_name: str) -> EditorComponent:
"""
Used to add new component to Entity.
@@ -248,7 +261,7 @@ class EditorEntity:
def get_components_of_type(self, component_names: list) -> List[EditorComponent]:
"""
Used to get components of type component_name that already exists on Entity
:param component_name: Name to component to check
:param component_names: List of names of components to check
:return: List of Entity Component objects of given component name
"""
component_list = []
@@ -312,3 +325,39 @@ class EditorEntity:
editor.EditorEntityAPIBus(bus.Event, "SetStartStatus", self.id, status_to_set)
set_status = self.get_start_status()
assert set_status == status_to_set, f"Failed to set start status of {desired_start_status} to {self.get_name}"
def delete(self) -> None:
"""
Used to delete the Entity.
:return: None
"""
editor.ToolsApplicationRequestBus(bus.Broadcast, "DeleteEntityById", self.id)
def set_visibility_state(self, is_visible: bool) -> None:
"""
Sets the visibility state on the object to visible or not visible.
:param is_visible: True for making visible, False to make not visible.
:return: None
"""
editor.EditorEntityAPIBus(bus.Event, "SetVisibilityState", self.id, is_visible)
def exists(self) -> bool:
"""
Used to verify if the Entity exists.
:return: True if the Entity exists, False otherwise.
"""
return editor.ToolsApplicationRequestBus(bus.Broadcast, "EntityExists", self.id)
def is_hidden(self) -> bool:
"""
Gets the "isHidden" value from the Entity.
:return: True if "isHidden" is enabled, False otherwise.
"""
return editor.EditorEntityInfoRequestBus(bus.Event, "IsHidden", self.id)
def is_visible(self) -> bool:
"""
Gets the "isVisible" value from the Entity.
:return: True if "isVisible" is enabled, False otherwise.
"""
return editor.EditorEntityInfoRequestBus(bus.Event, "IsVisible", self.id)
@@ -12,7 +12,7 @@ if(PAL_TRAIT_BUILD_TESTS_SUPPORTED AND PAL_TRAIT_BUILD_HOST_TOOLS)
TEST_SUITE main
TEST_REQUIRES gpu
TEST_SERIAL
PATH ${CMAKE_CURRENT_LIST_DIR}/TestSuite_Active.py
PATH ${CMAKE_CURRENT_LIST_DIR}/TestSuite_Main.py
RUNTIME_DEPENDENCIES
Legacy::Editor
AZ::AssetProcessor
@@ -1,11 +0,0 @@
"""
Copyright (c) Contributors to the Open 3D Engine Project.
For complete copyright and license terms please see the LICENSE at the root of this distribution.
SPDX-License-Identifier: Apache-2.0 OR MIT
"""
def init():
import os
import sys
sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/../automatedtesting_shared')
@@ -22,12 +22,11 @@ from base import TestAutomationBase
class TestAutomation(TestAutomationBase):
use_null_renderer = False # Use default renderer (needs gpu)
extra_cmdline_args = []
def test_C18977329_NvCloth_AddClothSimulationToMesh(self, request, workspace, editor, launcher_platform):
from . import C18977329_NvCloth_AddClothSimulationToMesh as test_module
self._run_test(request, workspace, editor, test_module, self.extra_cmdline_args, self.use_null_renderer)
def test_NvCloth_AddClothSimulationToMesh(self, request, workspace, editor, launcher_platform):
from .tests import NvCloth_AddClothSimulationToMesh as test_module
self._run_test(request, workspace, editor, test_module, use_null_renderer = self.use_null_renderer)
def test_C18977330_NvCloth_AddClothSimulationToActor(self, request, workspace, editor, launcher_platform):
from . import C18977330_NvCloth_AddClothSimulationToActor as test_module
self._run_test(request, workspace, editor, test_module, self.extra_cmdline_args, self.use_null_renderer)
def test_NvCloth_AddClothSimulationToActor(self, request, workspace, editor, launcher_platform):
from .tests import NvCloth_AddClothSimulationToActor as test_module
self._run_test(request, workspace, editor, test_module, use_null_renderer = self.use_null_renderer)
@@ -15,7 +15,7 @@ class Tests:
exit_game_mode = ("Exited game mode", "Failed to exit game mode")
# fmt: on
def C18977330_NvCloth_AddClothSimulationToActor():
def NvCloth_AddClothSimulationToActor():
"""
Summary:
Load level with Entity having Actor and Cloth components already setup. Verify that editor remains stable in Game mode.
@@ -44,11 +44,7 @@ def C18977330_NvCloth_AddClothSimulationToActor():
from editor_python_test_tools.editor_entity_utils import EditorEntity
from editor_python_test_tools.utils import Report
# Helper file Imports
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import TestHelper as helper
from editor_python_test_tools.utils import Tracer
@@ -57,7 +53,7 @@ def C18977330_NvCloth_AddClothSimulationToActor():
helper.init_idle()
# 1) Load the level
helper.open_level("NvCloth", "C18977330_NvCloth_AddClothSimulationToActor")
helper.open_level("NvCloth", "NvCloth_AddClothSimulationToActor")
# 2) Start the Tracer to catch any errors and warnings
with Tracer() as section_tracer:
@@ -84,7 +80,5 @@ def C18977330_NvCloth_AddClothSimulationToActor():
helper.close_editor()
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C18977330_NvCloth_AddClothSimulationToActor)
Report.start_test(NvCloth_AddClothSimulationToActor)
@@ -15,7 +15,7 @@ class Tests:
exit_game_mode = ("Exited game mode", "Failed to exit game mode")
# fmt: on
def C18977329_NvCloth_AddClothSimulationToMesh():
def NvCloth_AddClothSimulationToMesh():
"""
Summary:
Load level with Entity having Mesh and Cloth components already setup. Verify that editor remains stable in Game mode.
@@ -45,10 +45,6 @@ def C18977329_NvCloth_AddClothSimulationToMesh():
from editor_python_test_tools.editor_entity_utils import EditorEntity
from editor_python_test_tools.utils import Report
# Helper file Imports
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import TestHelper as helper
from editor_python_test_tools.utils import Tracer
@@ -57,7 +53,7 @@ def C18977329_NvCloth_AddClothSimulationToMesh():
helper.init_idle()
# 1) Load the level
helper.open_level("NvCloth", "C18977329_NvCloth_AddClothSimulationToMesh")
helper.open_level("NvCloth", "NvCloth_AddClothSimulationToMesh")
# 2) Start the Tracer to catch any errors and warnings
with Tracer() as section_tracer:
@@ -84,7 +80,5 @@ def C18977329_NvCloth_AddClothSimulationToMesh():
helper.close_editor()
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C18977329_NvCloth_AddClothSimulationToMesh)
Report.start_test(NvCloth_AddClothSimulationToMesh)
@@ -0,0 +1,183 @@
"""
Copyright (c) Contributors to the Open 3D Engine Project.
For complete copyright and license terms please see the LICENSE at the root of this distribution.
SPDX-License-Identifier: Apache-2.0 OR MIT
"""
# This suite consists of all test cases that are under development and have not been verified yet.
# Once they are verified, please move them to TestSuite_Active.py
import pytest
import os
import sys
from .utils.FileManagement import FileManagement as fm
sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/../automatedtesting_shared')
from base import TestAutomationBase
@pytest.mark.parametrize("project", ["AutomatedTesting"])
@pytest.mark.parametrize("launcher_platform", ['windows_editor'])
class TestAutomation(TestAutomationBase):
@fm.file_revert("ragdollbones.physmaterial",
r"AutomatedTesting\Levels\Physics\Material_LibraryCrudOperationsReflectOnRagdollBones")
def test_Material_LibraryCrudOperationsReflectOnRagdollBones(self, request, workspace, editor, launcher_platform):
from .tests.material import Material_LibraryCrudOperationsReflectOnRagdollBones as test_module
self._run_test(request, workspace, editor, test_module)
def test_Material_RagdollBones(self, request, workspace, editor, launcher_platform):
from .tests.material import Material_RagdollBones as test_module
self._run_test(request, workspace, editor, test_module)
@fm.file_revert("c15308221_material_componentsinsyncwithlibrary.physmaterial",
r"AutomatedTesting\Levels\Physics\Material_ComponentsInSyncWithLibrary")
def test_Material_ComponentsInSyncWithLibrary(self, request, workspace, editor, launcher_platform):
from .tests.material import Material_ComponentsInSyncWithLibrary as test_module
self._run_test(request, workspace, editor, test_module)
# BUG: LY-107723")
def test_ScriptCanvas_SetKinematicTargetTransform(self, request, workspace, editor, launcher_platform):
from .tests.script_canvas import ScriptCanvas_SetKinematicTargetTransform as test_module
self._run_test(request, workspace, editor, test_module)
# Failing, PhysXTerrain
@fm.file_revert("c4925579_material_addmodifydeleteonterrain.physmaterial",
r"AutomatedTesting\Levels\Physics\Material_LibraryCrudOperationsReflectOnTerrain")
def test_Material_LibraryCrudOperationsReflectOnTerrain(self, request, workspace, editor, launcher_platform):
from .tests.material import Material_LibraryCrudOperationsReflectOnTerrain as test_module
self._run_test(request, workspace, editor, test_module)
# Failing, PhysXTerrain
def test_Terrain_TerrainTexturePainterWorks(self, request, workspace, editor, launcher_platform):
from .tests.terrain import Terrain_TerrainTexturePainterWorks as test_module
self._run_test(request, workspace, editor, test_module)
# Failing, PhysXTerrain
def test_Material_CanBeAssignedToTerrain(self, request, workspace, editor, launcher_platform):
from .tests.material import Material_CanBeAssignedToTerrain as test_module
self._run_test(request, workspace, editor, test_module)
# Failing, PhysXTerrain
def test_Material_DefaultLibraryConsistentOnAllFeatures(self, request, workspace, editor, launcher_platform):
from .tests.material import Material_DefaultLibraryConsistentOnAllFeatures as test_module
self._run_test(request, workspace, editor, test_module)
# Failing, PhysXTerrain
@fm.file_revert("all_ones_1.physmaterial", r"AutomatedTesting\Levels\Physics\Material_DefaultMaterialLibraryChangesWork")
@fm.file_override("default.physxconfiguration", "Material_DefaultMaterialLibraryChangesWork.physxconfiguration", "AutomatedTesting")
def test_Material_DefaultMaterialLibraryChangesWork(self, request, workspace, editor, launcher_platform):
from .tests.material import Material_DefaultMaterialLibraryChangesWork as test_module
self._run_test(request, workspace, editor, test_module)
def test_Collider_SameCollisionGroupSameLayerCollide(self, request, workspace, editor, launcher_platform):
from .tests.collider import Collider_SameCollisionGroupSameLayerCollide as test_module
self._run_test(request, workspace, editor, test_module)
def test_Ragdoll_OldRagdollSerializationNoErrors(self, request, workspace, editor, launcher_platform):
from .tests.ragdoll import Ragdoll_OldRagdollSerializationNoErrors as test_module
self._run_test(request, workspace, editor, test_module)
@fm.file_override("default.physxconfiguration", "ScriptCanvas_OverlapNode.physxconfiguration")
def test_ScriptCanvas_OverlapNode(self, request, workspace, editor, launcher_platform):
from .tests.script_canvas import ScriptCanvas_OverlapNode as test_module
self._run_test(request, workspace, editor, test_module)
def test_Material_StaticFriction(self, request, workspace, editor, launcher_platform):
from .tests.material import Material_StaticFriction as test_module
self._run_test(request, workspace, editor, test_module)
@fm.file_revert("c4888315_material_addmodifydeleteoncollider.physmaterial",
r"AutomatedTesting\Levels\Physics\Material_LibraryCrudOperationsReflectOnCollider")
def test_Material_LibraryCrudOperationsReflectOnCollider(self, request, workspace, editor, launcher_platform):
from .tests.material import Material_LibraryCrudOperationsReflectOnCollider as test_module
self._run_test(request, workspace, editor, test_module)
@fm.file_revert("c15563573_material_addmodifydeleteoncharactercontroller.physmaterial",
r"AutomatedTesting\Levels\Physics\Material_LibraryCrudOperationsReflectOnCharacterController")
def test_Material_LibraryCrudOperationsReflectOnCharacterController(self, request, workspace, editor, launcher_platform):
from .tests.material import Material_LibraryCrudOperationsReflectOnCharacterController as test_module
self._run_test(request, workspace, editor, test_module)
@fm.file_revert("c4888315_material_addmodifydeleteoncollider.physmaterial",
r"AutomatedTesting\Levels\Physics\Material_LibraryCrudOperationsReflectOnCollider")
def test_Material_LibraryCrudOperationsReflectOnCollider(self, request, workspace, editor, launcher_platform):
from .tests.material import Material_LibraryCrudOperationsReflectOnCollider as test_module
self._run_test(request, workspace, editor, test_module)
@fm.file_revert("c15563573_material_addmodifydeleteoncharactercontroller.physmaterial",
r"AutomatedTesting\Levels\Physics\Material_LibraryCrudOperationsReflectOnCharacterController")
def test_Material_LibraryCrudOperationsReflectOnCharacterController(self, request, workspace, editor, launcher_platform):
from .tests.material import Material_LibraryCrudOperationsReflectOnCharacterController as test_module
self._run_test(request, workspace, editor, test_module)
@fm.file_revert("c4044455_material_librarychangesinstantly.physmaterial",
r"AutomatedTesting\Levels\Physics\C4044455_Material_LibraryChangesInstantly")
def test_Material_LibraryChangesReflectInstantly(self, request, workspace, editor, launcher_platform):
from .tests.material import Material_LibraryChangesReflectInstantly as test_module
self._run_test(request, workspace, editor, test_module)
@fm.file_revert("Material_LibraryUpdatedAcrossLevels.physmaterial",
r"AutomatedTesting\Levels\Physics\Material_LibraryUpdatedAcrossLevels")
def test_Material_LibraryUpdatedAcrossLevels(self, request, workspace, editor, launcher_platform):
from .tests.material import Material_LibraryUpdatedAcrossLevels as test_module
self._run_test(request, workspace, editor, test_module)
def test_RigidBody_LinearDampingAffectsMotion(self, request, workspace, editor, launcher_platform):
from .tests.rigid_body import RigidBody_LinearDampingAffectsMotion as test_module
self._run_test(request, workspace, editor, test_module)
def test_Terrain_CollisionAgainstRigidBody(self, request, workspace, editor, launcher_platform):
from .tests.terrain import Terrain_CollisionAgainstRigidBody as test_module
self._run_test(request, workspace, editor, test_module)
def test_ShapeCollider_CylinderShapeCollides(self, request, workspace, editor, launcher_platform):
from .tests.collider import ShapeCollider_CylinderShapeCollides as test_module
self._run_test(request, workspace, editor, test_module)
def test_Physics_WorldBodyBusWorksOnEditorComponents(self, request, workspace, editor, launcher_platform):
from .tests import Physics_WorldBodyBusWorksOnEditorComponents as test_module
self._run_test(request, workspace, editor, test_module)
def test_Collider_PxMeshErrorIfNoMesh(self, request, workspace, editor, launcher_platform):
from .tests.collider import Collider_PxMeshErrorIfNoMesh as test_module
self._run_test(request, workspace, editor, test_module)
def test_ForceRegion_ImpulsesBoxShapedRigidBody(self, request, workspace, editor, launcher_platform):
from .tests.force_region import ForceRegion_ImpulsesBoxShapedRigidBody as test_module
self._run_test(request, workspace, editor, test_module)
def test_Terrain_SpawnSecondTerrainComponentWarning(self, request, workspace, editor, launcher_platform):
from .tests.terrain import Terrain_SpawnSecondTerrainComponentWarning as test_module
self._run_test(request, workspace, editor, test_module)
def test_Terrain_AddPhysTerrainComponent(self, request, workspace, editor, launcher_platform):
from .tests.terrain import Terrain_AddPhysTerrainComponent as test_module
self._run_test(request, workspace, editor, test_module)
def test_Terrain_CanAddMultipleTerrainComponents(self, request, workspace, editor, launcher_platform):
from .tests.terrain import Terrain_CanAddMultipleTerrainComponents as test_module
self._run_test(request, workspace, editor, test_module)
def test_Terrain_MultipleTerrainComponentsWarning(self, request, workspace, editor, launcher_platform):
from .tests.terrain import Terrain_MultipleTerrainComponentsWarning as test_module
self._run_test(request, workspace, editor, test_module)
def test_Terrain_MultipleTerrainComponentsWarning(self, request, workspace, editor, launcher_platform):
from .tests.terrain import Terrain_MultipleTerrainComponentsWarning as test_module
self._run_test(request, workspace, editor, test_module)
def test_ForceRegion_HighValuesDirectionAxesWorkWithNoError(self, request, workspace, editor, launcher_platform):
from .tests.force_region import ForceRegion_HighValuesDirectionAxesWorkWithNoError as test_module
self._run_test(request, workspace, editor, test_module)
def test_Terrain_MultipleResolutionsValid(self, request, workspace, editor, launcher_platform):
from .tests.terrain import Terrain_MultipleResolutionsValid as test_module
self._run_test(request, workspace, editor, test_module)
def test_ForceRegion_SmallMagnitudeDeviationOnLargeForces(self, request, workspace, editor, launcher_platform):
from .tests.force_region import ForceRegion_SmallMagnitudeDeviationOnLargeForces as test_module
self._run_test(request, workspace, editor, test_module)
@@ -0,0 +1,94 @@
"""
Copyright (c) Contributors to the Open 3D Engine Project.
For complete copyright and license terms please see the LICENSE at the root of this distribution.
SPDX-License-Identifier: Apache-2.0 OR MIT
"""
# This suite consists of all test cases that are passing and have been verified.
import pytest
import os
import sys
from .utils.FileManagement import FileManagement as fm
from ly_test_tools import LAUNCHERS
sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/../automatedtesting_shared')
from base import TestAutomationBase
revert_physics_config = fm.file_revert_list(['physxdebugconfiguration.setreg', 'physxdefaultsceneconfiguration.setreg', 'physxsystemconfiguration.setreg'], 'AutomatedTesting/Registry')
@pytest.mark.SUITE_main
@pytest.mark.parametrize("launcher_platform", ['windows_editor'])
@pytest.mark.parametrize("project", ["AutomatedTesting"])
class TestAutomation(TestAutomationBase):
def test_RigidBody_EnablingGravityWorksUsingNotificationsPoC(self, request, workspace, editor, launcher_platform):
from .tests.rigid_body import RigidBody_EnablingGravityWorksUsingNotificationsPoC as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_ForceRegion_LocalSpaceForceOnRigidBodies(self, request, workspace, editor, launcher_platform):
from .tests.force_region import ForceRegion_LocalSpaceForceOnRigidBodies as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
@fm.file_override('physxsystemconfiguration.setreg','Material_DynamicFriction.setreg_override',
'AutomatedTesting/Registry', search_subdirs=True)
def test_Material_DynamicFriction(self, request, workspace, editor, launcher_platform):
from .tests.material import Material_DynamicFriction as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_Collider_SameCollisionGroupDiffLayersCollide(self, request, workspace, editor, launcher_platform):
from .tests.collider import Collider_SameCollisionGroupDiffLayersCollide as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_CharacterController_SwitchLevels(self, request, workspace, editor, launcher_platform):
from .tests.character_controller import CharacterController_SwitchLevels as test_module
self._run_test(request, workspace, editor, test_module)
def test_Ragdoll_AddPhysxRagdollComponentWorks(self, request, workspace, editor, launcher_platform):
from .tests.ragdoll import Ragdoll_AddPhysxRagdollComponentWorks as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_ScriptCanvas_MultipleRaycastNode(self, request, workspace, editor, launcher_platform):
from .tests.script_canvas import ScriptCanvas_MultipleRaycastNode as test_module
# Fixme: This test previously relied on unexpected lines log reading with is now not supported.
# Now the log reading must be done inside the test, preferably with the Tracer() utility
# unexpected_lines = ["Assert"] + test_module.Lines.unexpected
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
@fm.file_override('physxsystemconfiguration.setreg','Collider_DiffCollisionGroupDiffCollidingLayersNotCollide.setreg_override',
'AutomatedTesting/Registry', search_subdirs=True)
def test_Collider_DiffCollisionGroupDiffCollidingLayersNotCollide(self, request, workspace, editor, launcher_platform):
from .tests.collider import Collider_DiffCollisionGroupDiffCollidingLayersNotCollide as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_Joints_HingeLeadFollowerCollide(self, request, workspace, editor, launcher_platform):
from .tests.joints import Joints_HingeLeadFollowerCollide as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_Collider_PxMeshConvexMeshCollides(self, request, workspace, editor, launcher_platform):
from .tests.collider import Collider_PxMeshConvexMeshCollides as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_ShapeCollider_CylinderShapeCollides(self, request, workspace, editor, launcher_platform):
from .tests.shape_collider import ShapeCollider_CylinderShapeCollides as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_C15425929_Undo_Redo(self, request, workspace, editor, launcher_platform):
from .tests import Physics_UndoRedoWorksOnEntityWithPhysComponents as test_module
self._run_test(request, workspace, editor, test_module)
@@ -12,7 +12,7 @@ import inspect
from ly_test_tools import LAUNCHERS
from ly_test_tools.o3de.editor_test import EditorSingleTest, EditorSharedTest, EditorParallelTest, EditorTestSuite
from .FileManagement import FileManagement as fm
from .utils.FileManagement import FileManagement as fm
# Custom test spec, it provides functionality to override files
class EditorSingleTest_WithFileOverrides(EditorSingleTest):
@@ -21,7 +21,7 @@ class EditorSingleTest_WithFileOverrides(EditorSingleTest):
# Base directory of the files (Default path is {ProjectName})
base_dir = None
# True will will search sub-directories for the files in base
search_subdirs = False
search_subdirs = True
@classmethod
def wrap_run(cls, instance, request, workspace, editor, editor_test_results, launcher_platform):
@@ -47,14 +47,14 @@ class EditorSingleTest_WithFileOverrides(EditorSingleTest):
fm._backup_file(f, file_list[f])
for original, override in cls.files_to_override:
fm._copy_file(override, file_list[override], original, file_list[override])
fm._copy_file(override, file_list[override], original, file_list[original])
yield # Run Test
for f in original_file_list:
fm._restore_file(f, file_list[f])
@pytest.mark.xfail(reason="Optimized tests are experimental, we will enable xfail and monitor them temporarly.")
@pytest.mark.xfail(reason="Optimized tests are experimental, we will enable xfail and monitor them temporarily.")
@pytest.mark.SUITE_main
@pytest.mark.parametrize("launcher_platform", ['windows_editor'])
@pytest.mark.parametrize("project", ["AutomatedTesting"])
@@ -67,283 +67,280 @@ class TestAutomation(EditorTestSuite):
#########################################
# Non-atomic tests: These need to be run in a single editor because they have custom setup and teardown
class C4044459_Material_DynamicFriction(EditorSingleTest_WithFileOverrides):
from . import C4044459_Material_DynamicFriction as test_module
from .tests.material import Material_DynamicFriction as test_module
files_to_override = [
('physxsystemconfiguration.setreg', 'C4044459_Material_DynamicFriction.setreg_override')
('physxsystemconfiguration.setreg', 'Material_DynamicFriction.setreg_override')
]
base_dir = "AutomatedTesting/Registry"
class C4982593_PhysXCollider_CollisionLayerTest(EditorSingleTest_WithFileOverrides):
from . import C4982593_PhysXCollider_CollisionLayerTest as test_module
from .tests.collider import Collider_DiffCollisionGroupDiffCollidingLayersNotCollide as test_module
files_to_override = [
('physxsystemconfiguration.setreg', 'C4982593_PhysXCollider_CollisionLayer.setreg_override')
('physxsystemconfiguration.setreg', 'Collider_DiffCollisionGroupDiffCollidingLayersNotCollide.setreg_override')
]
base_dir = "AutomatedTesting/Registry"
#########################################
class C111111_RigidBody_EnablingGravityWorksUsingNotificationsPoC(EditorSharedTest):
from . import C111111_RigidBody_EnablingGravityWorksUsingNotificationsPoC as test_module
from .tests.rigid_body import RigidBody_EnablingGravityWorksUsingNotificationsPoC as test_module
class C5932041_PhysXForceRegion_LocalSpaceForceOnRigidBodies(EditorSharedTest):
from . import C5932041_PhysXForceRegion_LocalSpaceForceOnRigidBodies as test_module
from .tests.force_region import ForceRegion_LocalSpaceForceOnRigidBodies as test_module
class C15425929_Undo_Redo(EditorSharedTest):
from . import C15425929_Undo_Redo as test_module
from .tests import Physics_UndoRedoWorksOnEntityWithPhysComponents as test_module
class C4976243_Collision_SameCollisionGroupDiffCollisionLayers(EditorSharedTest):
from . import C4976243_Collision_SameCollisionGroupDiffCollisionLayers as test_module
from .tests.collider import Collider_SameCollisionGroupDiffLayersCollide as test_module
class C14654881_CharacterController_SwitchLevels(EditorSharedTest):
from . import C14654881_CharacterController_SwitchLevels as test_module
from .tests.character_controller import CharacterController_SwitchLevels as test_module
class C17411467_AddPhysxRagdollComponent(EditorSharedTest):
from . import C17411467_AddPhysxRagdollComponent as test_module
from .tests.ragdoll import Ragdoll_AddPhysxRagdollComponentWorks as test_module
class C12712453_ScriptCanvas_MultipleRaycastNode(EditorSharedTest):
from . import C12712453_ScriptCanvas_MultipleRaycastNode as test_module
from .tests.script_canvas import ScriptCanvas_MultipleRaycastNode as test_module
class C18243586_Joints_HingeLeadFollowerCollide(EditorSharedTest):
from . import C18243586_Joints_HingeLeadFollowerCollide as test_module
from .tests.joints import Joints_HingeLeadFollowerCollide as test_module
class C4982803_Enable_PxMesh_Option(EditorSharedTest):
from . import C4982803_Enable_PxMesh_Option as test_module
from .tests.collider import Collider_PxMeshConvexMeshCollides as test_module
class C24308873_CylinderShapeCollider_CollidesWithPhysXTerrain(EditorSharedTest):
from . import C24308873_CylinderShapeCollider_CollidesWithPhysXTerrain as test_module
from .tests.shape_collider import ShapeCollider_CylinderShapeCollides as test_module
class C3510642_Terrain_NotCollideWithTerrain(EditorSharedTest):
from . import C3510642_Terrain_NotCollideWithTerrain as test_module
from .tests.terrain import Terrain_NoPhysTerrainComponentNoCollision as test_module
class C4976195_RigidBodies_InitialLinearVelocity(EditorSharedTest):
from . import C4976195_RigidBodies_InitialLinearVelocity as test_module
from .tests.rigid_body import RigidBody_InitialLinearVelocity as test_module
class C4976206_RigidBodies_GravityEnabledActive(EditorSharedTest):
from . import C4976206_RigidBodies_GravityEnabledActive as test_module
from .tests.rigid_body import RigidBody_StartGravityEnabledWorks as test_module
class C4976207_PhysXRigidBodies_KinematicBehavior(EditorSharedTest):
from . import C4976207_PhysXRigidBodies_KinematicBehavior as test_module
from .tests.rigid_body import RigidBody_KinematicModeWorks as test_module
class C5932042_PhysXForceRegion_LinearDamping(EditorSharedTest):
from . import C5932042_PhysXForceRegion_LinearDamping as test_module
from .tests.force_region import ForceRegion_LinearDampingForceOnRigidBodies as test_module
class C5932043_ForceRegion_SimpleDragOnRigidBodies(EditorSharedTest):
from . import C5932043_ForceRegion_SimpleDragOnRigidBodies as test_module
from .tests.force_region import ForceRegion_SimpleDragForceOnRigidBodies as test_module
class C5959760_PhysXForceRegion_PointForceExertion(EditorSharedTest):
from . import C5959760_PhysXForceRegion_PointForceExertion as test_module
from .tests.force_region import ForceRegion_CapsuleShapedForce as test_module
class C5959764_ForceRegion_ForceRegionImpulsesCapsule(EditorSharedTest):
from . import C5959764_ForceRegion_ForceRegionImpulsesCapsule as test_module
from .tests.force_region import ForceRegion_ImpulsesCapsuleShapedRigidBody as test_module
class C5340400_RigidBody_ManualMomentOfInertia(EditorSharedTest):
from . import C5340400_RigidBody_ManualMomentOfInertia as test_module
from .tests.rigid_body import RigidBody_MomentOfInertiaManualSetting as test_module
class C4976210_COM_ManualSetting(EditorSharedTest):
from . import C4976210_COM_ManualSetting as test_module
from .tests.rigid_body import RigidBody_COM_ManualSettingWorks as test_module
class C4976194_RigidBody_PhysXComponentIsValid(EditorSharedTest):
from . import C4976194_RigidBody_PhysXComponentIsValid as test_module
from .tests.rigid_body import RigidBody_AddRigidBodyComponent as test_module
class C5932045_ForceRegion_Spline(EditorSharedTest):
from . import C5932045_ForceRegion_Spline as test_module
from .tests.force_region import ForceRegion_SplineForceOnRigidBodies as test_module
class C4982797_Collider_ColliderOffset(EditorSharedTest):
from . import C4982797_Collider_ColliderOffset as test_module
from .tests.collider import Collider_ColliderPositionOffset as test_module
class C4976200_RigidBody_AngularDampingObjectRotation(EditorSharedTest):
from . import C4976200_RigidBody_AngularDampingObjectRotation as test_module
from .tests.rigid_body import RigidBody_AngularDampingAffectsRotation as test_module
class C5689529_Verify_Terrain_RigidBody_Collider_Mesh(EditorSharedTest):
from . import C5689529_Verify_Terrain_RigidBody_Collider_Mesh as test_module
from .tests import Physics_VerifyColliderRigidBodyMeshAndTerrainWorkTogether as test_module
class C5959810_ForceRegion_ForceRegionCombinesForces(EditorSharedTest):
from . import C5959810_ForceRegion_ForceRegionCombinesForces as test_module
from .tests.force_region import ForceRegion_MultipleForcesInSameComponentCombineForces as test_module
class C5959765_ForceRegion_AssetGetsImpulsed(EditorSharedTest):
from . import C5959765_ForceRegion_AssetGetsImpulsed as test_module
from .tests.force_region import ForceRegion_ImpulsesPxMeshShapedRigidBody as test_module
class C6274125_ScriptCanvas_TriggerEvents(EditorSharedTest):
from . import C6274125_ScriptCanvas_TriggerEvents as test_module
from .tests.script_canvas import ScriptCanvas_TriggerEvents as test_module
# needs to be updated to log for unexpected lines
# expected_lines = test_module.LogLines.expected_lines
class C6090554_ForceRegion_PointForceNegative(EditorSharedTest):
from . import C6090554_ForceRegion_PointForceNegative as test_module
from .tests.force_region import ForceRegion_ZeroPointForceDoesNothing as test_module
class C6090550_ForceRegion_WorldSpaceForceNegative(EditorSharedTest):
from . import C6090550_ForceRegion_WorldSpaceForceNegative as test_module
from .tests.force_region import ForceRegion_ZeroWorldSpaceForceDoesNothing as test_module
class C6090552_ForceRegion_LinearDampingNegative(EditorSharedTest):
from . import C6090552_ForceRegion_LinearDampingNegative as test_module
from .tests.force_region import ForceRegion_ZeroLinearDampingDoesNothing as test_module
class C5968760_ForceRegion_CheckNetForceChange(EditorSharedTest):
from . import C5968760_ForceRegion_CheckNetForceChange as test_module
from .tests.force_region import ForceRegion_MovingForceRegionChangesNetForce as test_module
@pytest.mark.xfail(reason="Ongoing issue in Script Canvas, AZ::Event fail to compile on Script Canvas")
class C12712452_ScriptCanvas_CollisionEvents(EditorSharedTest):
from . import C12712452_ScriptCanvas_CollisionEvents as test_module
from .tests.script_canvas import ScriptCanvas_CollisionEvents as test_module
class C12868578_ForceRegion_DirectionHasNoAffectOnMagnitude(EditorSharedTest):
from . import C12868578_ForceRegion_DirectionHasNoAffectOnMagnitude as test_module
from .tests.force_region import ForceRegion_DirectionHasNoAffectOnTotalForce as test_module
class C4976204_Verify_Start_Asleep_Condition(EditorSharedTest):
from . import C4976204_Verify_Start_Asleep_Condition as test_module
from .tests.rigid_body import RigidBody_StartAsleepWorks as test_module
class C6090546_ForceRegion_SliceFileInstantiates(EditorSharedTest):
from . import C6090546_ForceRegion_SliceFileInstantiates as test_module
from .tests.force_region import ForceRegion_SliceFileInstantiates as test_module
class C6090551_ForceRegion_LocalSpaceForceNegative(EditorSharedTest):
from . import C6090551_ForceRegion_LocalSpaceForceNegative as test_module
from .tests.force_region import ForceRegion_ZeroLocalSpaceForceDoesNothing as test_module
class C6090553_ForceRegion_SimpleDragForceOnRigidBodies(EditorSharedTest):
from . import C6090553_ForceRegion_SimpleDragForceOnRigidBodies as test_module
from .tests.force_region import ForceRegion_ZeroSimpleDragForceDoesNothing as test_module
class C4976209_RigidBody_ComputesCOM(EditorSharedTest):
from . import C4976209_RigidBody_ComputesCOM as test_module
from .tests.rigid_body import RigidBody_COM_ComputingWorks as test_module
class C4976201_RigidBody_MassIsAssigned(EditorSharedTest):
from . import C4976201_RigidBody_MassIsAssigned as test_module
from .tests.rigid_body import RigidBody_MassDifferentValuesWorks as test_module
class C12868580_ForceRegion_SplineModifiedTransform(EditorSharedTest):
from . import C12868580_ForceRegion_SplineModifiedTransform as test_module
from .tests.force_region import ForceRegion_SplineRegionWithModifiedTransform as test_module
class C12712455_ScriptCanvas_ShapeCastVerification(EditorSharedTest):
from . import C12712455_ScriptCanvas_ShapeCastVerification as test_module
from .tests.script_canvas import ScriptCanvas_ShapeCast as test_module
class C4976197_RigidBodies_InitialAngularVelocity(EditorSharedTest):
from . import C4976197_RigidBodies_InitialAngularVelocity as test_module
from .tests.rigid_body import RigidBody_InitialAngularVelocity as test_module
class C6090555_ForceRegion_SplineFollowOnRigidBodies(EditorSharedTest):
from . import C6090555_ForceRegion_SplineFollowOnRigidBodies as test_module
from .tests.force_region import ForceRegion_ZeroSplineForceDoesNothing as test_module
class C6131473_StaticSlice_OnDynamicSliceSpawn(EditorSharedTest):
from . import C6131473_StaticSlice_OnDynamicSliceSpawn as test_module
from .tests import Physics_DynamicSliceWithPhysNotSpawnsStaticSlice as test_module
class C5959808_ForceRegion_PositionOffset(EditorSharedTest):
from . import C5959808_ForceRegion_PositionOffset as test_module
from .tests.force_region import ForceRegion_PositionOffset as test_module
@pytest.mark.xfail(reason="Something with the CryRenderer disabling is causing this test to fail now.")
class C13895144_Ragdoll_ChangeLevel(EditorSharedTest):
from . import C13895144_Ragdoll_ChangeLevel as test_module
from .tests.ragdoll import Ragdoll_LevelSwitchDoesNotCrash as test_module
class C5968759_ForceRegion_ExertsSeveralForcesOnRigidBody(EditorSharedTest):
from . import C5968759_ForceRegion_ExertsSeveralForcesOnRigidBody as test_module
from .tests.force_region import ForceRegion_MultipleComponentsCombineForces as test_module
@pytest.mark.xfail(reason="This test will sometimes fail as the ball will continue to roll before the timeout is reached.")
class C4976202_RigidBody_StopsWhenBelowKineticThreshold(EditorSharedTest):
from . import C4976202_RigidBody_StopsWhenBelowKineticThreshold as test_module
from .tests.rigid_body import RigidBody_SleepWhenBelowKineticThreshold as test_module
class C13351703_COM_NotIncludeTriggerShapes(EditorSharedTest):
from . import C13351703_COM_NotIncludeTriggerShapes as test_module
from .tests.rigid_body import RigidBody_COM_NotIncludesTriggerShapes as test_module
class C5296614_PhysXMaterial_ColliderShape(EditorSharedTest):
from . import C5296614_PhysXMaterial_ColliderShape as test_module
from .tests.material import Material_NoEffectIfNoColliderShape as test_module
class C4982595_Collider_TriggerDisablesCollision(EditorSharedTest):
from . import C4982595_Collider_TriggerDisablesCollision as test_module
from .tests.collider import Collider_TriggerPassThrough as test_module
class C14976307_Gravity_SetGravityWorks(EditorSharedTest):
from . import C14976307_Gravity_SetGravityWorks as test_module
from .tests.rigid_body import RigidBody_SetGravityWorks as test_module
class C4044694_Material_EmptyLibraryUsesDefault(EditorSharedTest):
from . import C4044694_Material_EmptyLibraryUsesDefault as test_module
from .tests.material import Material_EmptyLibraryUsesDefault as test_module
class C15845879_ForceRegion_HighLinearDampingForce(EditorSharedTest):
from . import C15845879_ForceRegion_HighLinearDampingForce as test_module
from .tests.force_region import ForceRegion_NoQuiverOnHighLinearDampingForce as test_module
class C4976218_RigidBodies_InertiaObjectsNotComputed(EditorSharedTest):
from . import C4976218_RigidBodies_InertiaObjectsNotComputed as test_module
from .tests.rigid_body import RigidBody_ComputeInertiaWorks as test_module
class C14902098_ScriptCanvas_PostPhysicsUpdate(EditorSharedTest):
from . import C14902098_ScriptCanvas_PostPhysicsUpdate as test_module
from .tests.script_canvas import ScriptCanvas_PostPhysicsUpdate as test_module
# Note: Test needs to be updated to log for unexpected lines
# unexpected_lines = ["Assert"] + test_module.Lines.unexpected
class C5959761_ForceRegion_PhysAssetExertsPointForce(EditorSharedTest):
from . import C5959761_ForceRegion_PhysAssetExertsPointForce as test_module
from .tests.force_region import ForceRegion_PxMeshShapedForce as test_module
# Marking the Test as expected to fail using the xfail decorator due to sporadic failure on Automated Review: SPEC-3146
# The test still runs, but a failure of the test doesn't result in the test run failing
@pytest.mark.xfail(reason="Test Sporadically fails with message [ NOT FOUND ] Success: Bar1 : Expected angular velocity")
class C13352089_RigidBodies_MaxAngularVelocity(EditorSharedTest):
from . import C13352089_RigidBodies_MaxAngularVelocity as test_module
from .tests.rigid_body import RigidBody_MaxAngularVelocityWorks as test_module
class C18243584_Joints_HingeSoftLimitsConstrained(EditorSharedTest):
from . import C18243584_Joints_HingeSoftLimitsConstrained as test_module
from .tests.joints import Joints_HingeSoftLimitsConstrained as test_module
class C18243589_Joints_BallSoftLimitsConstrained(EditorSharedTest):
from . import C18243589_Joints_BallSoftLimitsConstrained as test_module
from .tests.joints import Joints_BallSoftLimitsConstrained as test_module
class C18243591_Joints_BallLeadFollowerCollide(EditorSharedTest):
from . import C18243591_Joints_BallLeadFollowerCollide as test_module
from .tests.joints import Joints_BallLeadFollowerCollide as test_module
class C19578018_ShapeColliderWithNoShapeComponent(EditorSharedTest):
from . import C19578018_ShapeColliderWithNoShapeComponent as test_module
from .tests.shape_collider import ShapeCollider_InactiveWhenNoShapeComponent as test_module
class C14861500_DefaultSetting_ColliderShape(EditorSharedTest):
from . import C14861500_DefaultSetting_ColliderShape as test_module
from .tests.collider import Collider_CheckDefaultShapeSettingIsPxMesh as test_module
class C19723164_ShapeCollider_WontCrashEditor(EditorSharedTest):
from . import C19723164_ShapeColliders_WontCrashEditor as test_module
from .tests.shape_collider import ShapeCollider_LargeNumberOfShapeCollidersWontCrashEditor as test_module
class C4982800_PhysXColliderShape_CanBeSelected(EditorSharedTest):
from . import C4982800_PhysXColliderShape_CanBeSelected as test_module
from .tests.collider import Collider_SphereShapeEditting as test_module
class C4982801_PhysXColliderShape_CanBeSelected(EditorSharedTest):
from . import C4982801_PhysXColliderShape_CanBeSelected as test_module
from .tests.collider import Collider_BoxShapeEditting as test_module
class C4982802_PhysXColliderShape_CanBeSelected(EditorSharedTest):
from . import C4982802_PhysXColliderShape_CanBeSelected as test_module
from .tests.collider import Collider_CapsuleShapeEditting as test_module
class C12905528_ForceRegion_WithNonTriggerCollider(EditorSharedTest):
from . import C12905528_ForceRegion_WithNonTriggerCollider as test_module
from .tests.force_region import ForceRegion_WithNonTriggerColliderWarning as test_module
# Fixme: expected_lines = ["[Warning] (PhysX Force Region) - Please ensure collider component marked as trigger exists in entity"]
class C5932040_ForceRegion_CubeExertsWorldForce(EditorSharedTest):
from . import C5932040_ForceRegion_CubeExertsWorldForce as test_module
from .tests.force_region import ForceRegion_WorldSpaceForceOnRigidBodies as test_module
class C5932044_ForceRegion_PointForceOnRigidBody(EditorSharedTest):
from . import C5932044_ForceRegion_PointForceOnRigidBody as test_module
from .tests.force_region import ForceRegion_PointForceOnRigidBodies as test_module
class C5959759_RigidBody_ForceRegionSpherePointForce(EditorSharedTest):
from . import C5959759_RigidBody_ForceRegionSpherePointForce as test_module
from .tests.force_region import ForceRegion_SphereShapedForce as test_module
class C5959809_ForceRegion_RotationalOffset(EditorSharedTest):
from . import C5959809_ForceRegion_RotationalOffset as test_module
from .tests.force_region import ForceRegion_RotationalOffset as test_module
class C15096740_Material_LibraryUpdatedCorrectly(EditorSharedTest):
from . import C15096740_Material_LibraryUpdatedCorrectly as test_module
from .tests.material import Material_LibraryClearingAssignsDefault as test_module
class C4976236_AddPhysxColliderComponent(EditorSharedTest):
from . import C4976236_AddPhysxColliderComponent as test_module
from .tests.collider import Collider_AddColliderComponent as test_module
@pytest.mark.xfail(reason="This will fail due to this issue ATOM-15487.")
class C14861502_PhysXCollider_AssetAutoAssigned(EditorSharedTest):
from . import C14861502_PhysXCollider_AssetAutoAssigned as test_module
from .tests.collider import Collider_PxMeshAutoAssignedWhenModifyingRenderMeshComponent as test_module
class C14861501_PhysXCollider_RenderMeshAutoAssigned(EditorSharedTest):
from . import C14861501_PhysXCollider_RenderMeshAutoAssigned as test_module
from .tests.collider import Collider_PxMeshAutoAssignedWhenAddingRenderMeshComponent as test_module
class C4044695_PhysXCollider_AddMultipleSurfaceFbx(EditorSharedTest):
from . import C4044695_PhysXCollider_AddMultipleSurfaceFbx as test_module
from .tests.collider import Collider_MultipleSurfaceSlots as test_module
class C14861504_RenderMeshAsset_WithNoPxAsset(EditorSharedTest):
from . import C14861504_RenderMeshAsset_WithNoPxAsset as test_module
from .tests.collider import Collider_PxMeshNotAutoAssignedWhenNoPhysicsFbx as test_module
class C100000_RigidBody_EnablingGravityWorksPoC(EditorSharedTest):
from . import C100000_RigidBody_EnablingGravityWorksPoC as test_module
from .tests.rigid_body import RigidBody_EnablingGravityWorksPoC as test_module
class C4982798_Collider_ColliderRotationOffset(EditorSharedTest):
from . import C4982798_Collider_ColliderRotationOffset as test_module
class C15308217_NoCrash_LevelSwitch(EditorSharedTest):
from . import C15308217_NoCrash_LevelSwitch as test_module
from .tests.collider import Collider_ColliderRotationOffset as test_module
class C6090547_ForceRegion_ParentChildForceRegions(EditorSharedTest):
from . import C6090547_ForceRegion_ParentChildForceRegions as test_module
from .tests.force_region import ForceRegion_ParentChildForcesCombineForces as test_module
class C19578021_ShapeCollider_CanBeAdded(EditorSharedTest):
from . import C19578021_ShapeCollider_CanBeAdded as test_module
from .tests.shape_collider import ShapeCollider_CanBeAddedWitNoWarnings as test_module
class C15425929_Undo_Redo(EditorSharedTest):
from . import C15425929_Undo_Redo as test_module
from .tests import Physics_UndoRedoWorksOnEntityWithPhysComponents as test_module
@@ -0,0 +1,556 @@
"""
Copyright (c) Contributors to the Open 3D Engine Project.
For complete copyright and license terms please see the LICENSE at the root of this distribution.
SPDX-License-Identifier: Apache-2.0 OR MIT
"""
# This suite consists of all test cases that are passing and have been verified.
import pytest
import os
import sys
from .utils.FileManagement import FileManagement as fm
from ly_test_tools import LAUNCHERS
sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/../automatedtesting_shared')
from base import TestAutomationBase
revert_physics_config = fm.file_revert_list(['physxdebugconfiguration.setreg', 'physxdefaultsceneconfiguration.setreg', 'physxsystemconfiguration.setreg'], 'AutomatedTesting/Registry')
@pytest.mark.SUITE_periodic
@pytest.mark.parametrize("launcher_platform", ['windows_editor'])
@pytest.mark.parametrize("project", ["AutomatedTesting"])
class TestAutomation(TestAutomationBase):
@revert_physics_config
def test_Terrain_NoPhysTerrainComponentNoCollision(self, request, workspace, editor, launcher_platform):
from .tests.terrain import Terrain_NoPhysTerrainComponentNoCollision as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_RigidBody_InitialLinearVelocity(self, request, workspace, editor, launcher_platform):
from .tests.rigid_body import RigidBody_InitialLinearVelocity as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_RigidBody_StartGravityEnabledWorks(self, request, workspace, editor, launcher_platform):
from .tests.rigid_body import RigidBody_StartGravityEnabledWorks as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_RigidBody_KinematicModeWorks(self, request, workspace, editor, launcher_platform):
from .tests.rigid_body import RigidBody_KinematicModeWorks as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_ForceRegion_LinearDampingForceOnRigidBodies(self, request, workspace, editor, launcher_platform):
from .tests.force_region import ForceRegion_LinearDampingForceOnRigidBodies as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_ForceRegion_SimpleDragForceOnRigidBodies(self, request, workspace, editor, launcher_platform):
from .tests.force_region import ForceRegion_SimpleDragForceOnRigidBodies as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_ForceRegion_CapsuleShapedForce(self, request, workspace, editor, launcher_platform):
from .tests.force_region import ForceRegion_CapsuleShapedForce as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_ForceRegion_ImpulsesCapsuleShapedRigidBody(self, request, workspace, editor, launcher_platform):
from .tests.force_region import ForceRegion_ImpulsesCapsuleShapedRigidBody as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_RigidBody_MomentOfInertiaManualSetting(self, request, workspace, editor, launcher_platform):
from .tests.rigid_body import RigidBody_MomentOfInertiaManualSetting as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_RigidBody_COM_ManualSettingWorks(self, request, workspace, editor, launcher_platform):
from .tests.rigid_body import RigidBody_COM_ManualSettingWorks as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_RigidBody_AddRigidBodyComponent(self, request, workspace, editor, launcher_platform):
from .tests.rigid_body import RigidBody_AddRigidBodyComponent as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_ForceRegion_SplineForceOnRigidBodies(self, request, workspace, editor, launcher_platform):
from .tests.force_region import ForceRegion_SplineForceOnRigidBodies as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
@fm.file_override('physxsystemconfiguration.setreg','Material_RestitutionCombine.setreg_override',
'AutomatedTesting/Registry', search_subdirs=True)
def test_Material_RestitutionCombine(self, request, workspace, editor, launcher_platform):
from .tests.material import Material_RestitutionCombine as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
@fm.file_override('physxsystemconfiguration.setreg','Material_FrictionCombine.setreg_override',
'AutomatedTesting/Registry', search_subdirs=True)
def test_Material_FrictionCombine(self, request, workspace, editor, launcher_platform):
from .tests.material import Material_FrictionCombine as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_Collider_ColliderPositionOffset(self, request, workspace, editor, launcher_platform):
from .tests.collider import Collider_ColliderPositionOffset as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_RigidBody_AngularDampingAffectsRotation(self, request, workspace, editor, launcher_platform):
from .tests.rigid_body import RigidBody_AngularDampingAffectsRotation as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_Physics_VerifyColliderRigidBodyMeshAndTerrainWorkTogether(self, request, workspace, editor, launcher_platform):
from .tests import Physics_VerifyColliderRigidBodyMeshAndTerrainWorkTogether as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_ForceRegion_MultipleForcesInSameComponentCombineForces(self, request, workspace, editor, launcher_platform):
from .tests.force_region import ForceRegion_MultipleForcesInSameComponentCombineForces as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_ForceRegion_ImpulsesPxMeshShapedRigidBody(self, request, workspace, editor, launcher_platform):
from .tests.force_region import ForceRegion_ImpulsesPxMeshShapedRigidBody as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_ScriptCanvas_TriggerEvents(self, request, workspace, editor, launcher_platform):
from .tests.script_canvas import ScriptCanvas_TriggerEvents as test_module
# FIXME: expected_lines = test_module.LogLines.expected_lines
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_ForceRegion_ZeroPointForceDoesNothing(self, request, workspace, editor, launcher_platform):
from .tests.force_region import ForceRegion_ZeroPointForceDoesNothing as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_ForceRegion_ZeroWorldSpaceForceDoesNothing(self, request, workspace, editor, launcher_platform):
from .tests.force_region import ForceRegion_ZeroWorldSpaceForceDoesNothing as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_ForceRegion_ZeroLinearDampingDoesNothing(self, request, workspace, editor, launcher_platform):
from .tests.force_region import ForceRegion_ZeroLinearDampingDoesNothing as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_ForceRegion_MovingForceRegionChangesNetForce(self, request, workspace, editor, launcher_platform):
from .tests.force_region import ForceRegion_MovingForceRegionChangesNetForce as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_ScriptCanvas_CollisionEvents(self, request, workspace, editor, launcher_platform):
from .tests.script_canvas import ScriptCanvas_CollisionEvents as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_ForceRegion_DirectionHasNoAffectOnTotalForce(self, request, workspace, editor, launcher_platform):
from .tests.force_region import ForceRegion_DirectionHasNoAffectOnTotalForce as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_RigidBody_StartAsleepWorks(self, request, workspace, editor, launcher_platform):
from .tests.rigid_body import RigidBody_StartAsleepWorks as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_ForceRegion_SliceFileInstantiates(self, request, workspace, editor, launcher_platform):
from .tests.force_region import ForceRegion_SliceFileInstantiates as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_ForceRegion_ZeroLocalSpaceForceDoesNothing(self, request, workspace, editor, launcher_platform):
from .tests.force_region import ForceRegion_ZeroLocalSpaceForceDoesNothing as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_ForceRegion_ZeroSimpleDragForceDoesNothing(self, request, workspace, editor, launcher_platform):
from .tests.force_region import ForceRegion_ZeroSimpleDragForceDoesNothing as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_RigidBody_COM_ComputingWorks(self, request, workspace, editor, launcher_platform):
from .tests.rigid_body import RigidBody_COM_ComputingWorks as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_RigidBody_MassDifferentValuesWorks(self, request, workspace, editor, launcher_platform):
from .tests.rigid_body import RigidBody_MassDifferentValuesWorks as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
@fm.file_override('physxsystemconfiguration.setreg','Material_RestitutionCombinePriorityOrder.setreg_override',
'AutomatedTesting/Registry', search_subdirs=True)
def test_Material_RestitutionCombinePriorityOrder(self, request, workspace, editor, launcher_platform):
from .tests.material import Material_RestitutionCombinePriorityOrder as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_ForceRegion_SplineRegionWithModifiedTransform(self, request, workspace, editor, launcher_platform):
from .tests.force_region import ForceRegion_SplineRegionWithModifiedTransform as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_ScriptCanvas_ShapeCast(self, request, workspace, editor, launcher_platform):
from .tests.script_canvas import ScriptCanvas_ShapeCast as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_RigidBody_InitialAngularVelocity(self, request, workspace, editor, launcher_platform):
from .tests.rigid_body import RigidBody_InitialAngularVelocity as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_ForceRegion_ZeroSplineForceDoesNothing(self, request, workspace, editor, launcher_platform):
from .tests.force_region import ForceRegion_ZeroSplineForceDoesNothing as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_Physics_DynamicSliceWithPhysNotSpawnsStaticSlice(self, request, workspace, editor, launcher_platform):
from .tests import Physics_DynamicSliceWithPhysNotSpawnsStaticSlice as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_ForceRegion_PositionOffset(self, request, workspace, editor, launcher_platform):
from .tests.force_region import ForceRegion_PositionOffset as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
@fm.file_override('physxsystemconfiguration.setreg','Material_FrictionCombinePriorityOrder.setreg_override',
'AutomatedTesting/Registry', search_subdirs=True)
def test_Material_FrictionCombinePriorityOrder(self, request, workspace, editor, launcher_platform):
from .tests.material import Material_FrictionCombinePriorityOrder as test_module
self._run_test(request, workspace, editor, test_module)
@pytest.mark.xfail(
reason="Something with the CryRenderer disabling is causing this test to fail now.")
@revert_physics_config
def test_Ragdoll_LevelSwitchDoesNotCrash(self, request, workspace, editor, launcher_platform):
from .tests.ragdoll import Ragdoll_LevelSwitchDoesNotCrash as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_ForceRegion_MultipleComponentsCombineForces(self, request, workspace, editor, launcher_platform):
from .tests.force_region import ForceRegion_MultipleComponentsCombineForces as test_module
self._run_test(request, workspace, editor, test_module)
# Marking the test as an expected failure due to sporadic failure on Automated Review: LYN-2580
# The test still runs, but a failure of the test doesn't result in the test run failing
@pytest.mark.xfail(
reason="This test needs new physics asset with multiple materials to be more stable.")
@revert_physics_config
@fm.file_override('physxsystemconfiguration.setreg', 'Material_PerFaceMaterialGetsCorrectMaterial.setreg_override',
'AutomatedTesting/Registry', search_subdirs=True)
def test_Material_PerFaceMaterialGetsCorrectMaterial(self, request, workspace, editor, launcher_platform):
from .tests.material import Material_PerFaceMaterialGetsCorrectMaterial as test_module
self._run_test(request, workspace, editor, test_module)
@pytest.mark.xfail(
reason="This test will sometimes fail as the ball will continue to roll before the timeout is reached.")
@revert_physics_config
def test_RigidBody_SleepWhenBelowKineticThreshold(self, request, workspace, editor, launcher_platform):
from .tests.rigid_body import RigidBody_SleepWhenBelowKineticThreshold as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_RigidBody_COM_NotIncludesTriggerShapes(self, request, workspace, editor, launcher_platform):
from .tests.rigid_body import RigidBody_COM_NotIncludesTriggerShapes as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_Material_NoEffectIfNoColliderShape(self, request, workspace, editor, launcher_platform):
from .tests.material import Material_NoEffectIfNoColliderShape as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_Collider_TriggerPassThrough(self, request, workspace, editor, launcher_platform):
from .tests.collider import Collider_TriggerPassThrough as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_RigidBody_SetGravityWorks(self, request, workspace, editor, launcher_platform):
from .tests.rigid_body import RigidBody_SetGravityWorks as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
@fm.file_override('physxsystemconfiguration.setreg','Material_CharacterController.setreg_override',
'AutomatedTesting/Registry', search_subdirs=True)
def test_Material_CharacterController(self, request, workspace, editor, launcher_platform):
from .tests.material import Material_CharacterController as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_Material_EmptyLibraryUsesDefault(self, request, workspace, editor, launcher_platform):
from .tests.material import Material_EmptyLibraryUsesDefault as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_ForceRegion_NoQuiverOnHighLinearDampingForce(self, request, workspace, editor, launcher_platform):
from .tests.force_region import ForceRegion_NoQuiverOnHighLinearDampingForce as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_RigidBody_ComputeInertiaWorks(self, request, workspace, editor, launcher_platform):
from .tests.rigid_body import RigidBody_ComputeInertiaWorks as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_ScriptCanvas_PostPhysicsUpdate(self, request, workspace, editor, launcher_platform):
from .tests.script_canvas import ScriptCanvas_PostPhysicsUpdate as test_module
# Fixme: unexpected_lines = ["Assert"] + test_module.Lines.unexpected
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
@fm.file_override('physxsystemconfiguration.setreg','Collider_NoneCollisionGroupSameLayerNotCollide.setreg_override',
'AutomatedTesting/Registry', search_subdirs=True)
def test_Collider_NoneCollisionGroupSameLayerNotCollide(self, request, workspace, editor, launcher_platform):
from .tests.collider import Collider_NoneCollisionGroupSameLayerNotCollide as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
@fm.file_override('physxsystemconfiguration.setreg','Collider_SameCollisionGroupSameCustomLayerCollide.setreg_override',
'AutomatedTesting/Registry', search_subdirs=True)
def test_Collider_SameCollisionGroupSameCustomLayerCollide(self, request, workspace, editor, launcher_platform):
from .tests.collider import Collider_SameCollisionGroupSameCustomLayerCollide as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
@fm.file_override('physxdefaultsceneconfiguration.setreg','ScriptCanvas_PostUpdateEvent.setreg_override',
'AutomatedTesting/Registry', search_subdirs=True)
def test_ScriptCanvas_PostUpdateEvent(self, request, workspace, editor, launcher_platform):
from .tests.script_canvas import ScriptCanvas_PostUpdateEvent as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
@fm.file_override('physxsystemconfiguration.setreg','Material_Restitution.setreg_override',
'AutomatedTesting/Registry', search_subdirs=True)
def test_Material_Restitution(self, request, workspace, editor, launcher_platform):
from .tests.material import Material_Restitution as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
@fm.file_override('physxdefaultsceneconfiguration.setreg', 'ScriptCanvas_PreUpdateEvent.setreg_override',
'AutomatedTesting/Registry', search_subdirs=True)
def test_ScriptCanvas_PreUpdateEvent(self, request, workspace, editor, launcher_platform):
from .tests.script_canvas import ScriptCanvas_PreUpdateEvent as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_ForceRegion_PxMeshShapedForce(self, request, workspace, editor, launcher_platform):
from .tests.force_region import ForceRegion_PxMeshShapedForce as test_module
self._run_test(request, workspace, editor, test_module)
# Marking the Test as expected to fail using the xfail decorator due to sporadic failure on Automated Review: SPEC-3146
# The test still runs, but a failure of the test doesn't result in the test run failing
@pytest.mark.xfail(reason="Test Sporadically fails with message [ NOT FOUND ] Success: Bar1 : Expected angular velocity")
@revert_physics_config
def test_RigidBody_MaxAngularVelocityWorks(self, request, workspace, editor, launcher_platform):
from .tests.rigid_body import RigidBody_MaxAngularVelocityWorks as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_Joints_HingeSoftLimitsConstrained(self, request, workspace, editor, launcher_platform):
from .tests.joints import Joints_HingeSoftLimitsConstrained as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_Joints_BallSoftLimitsConstrained(self, request, workspace, editor, launcher_platform):
from .tests.joints import Joints_BallSoftLimitsConstrained as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_Joints_BallLeadFollowerCollide(self, request, workspace, editor, launcher_platform):
from .tests.joints import Joints_BallLeadFollowerCollide as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
@fm.file_override('physxsystemconfiguration.setreg','Collider_AddingNewGroupWorks.setreg_override',
'AutomatedTesting/Registry', search_subdirs=True)
def test_Collider_AddingNewGroupWorks(self, request, workspace, editor, launcher_platform):
from .tests.collider import Collider_AddingNewGroupWorks as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_ShapeCollider_InactiveWhenNoShapeComponent(self, request, workspace, editor, launcher_platform):
from .tests.shape_collider import ShapeCollider_InactiveWhenNoShapeComponent as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_Collider_CheckDefaultShapeSettingIsPxMesh(self, request, workspace, editor, launcher_platform):
from .tests.collider import Collider_CheckDefaultShapeSettingIsPxMesh as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_ShapeCollider_LargeNumberOfShapeCollidersWontCrashEditor(self, request, workspace, editor, launcher_platform):
from .tests.shape_collider import ShapeCollider_LargeNumberOfShapeCollidersWontCrashEditor as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_Collider_SphereShapeEditting(self, request, workspace, editor, launcher_platform):
from .tests.collider import Collider_SphereShapeEditting as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_Collider_BoxShapeEditting(self, request, workspace, editor, launcher_platform):
from .tests.collider import Collider_BoxShapeEditting as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_Collider_CapsuleShapeEditting(self, request, workspace, editor, launcher_platform):
from .tests.collider import Collider_CapsuleShapeEditting as test_module
self._run_test(request, workspace, editor, test_module)
def test_ForceRegion_WithNonTriggerColliderWarning(self, request, workspace, editor, launcher_platform):
from .tests.force_region import ForceRegion_WithNonTriggerColliderWarning as test_module
# Fixme: expected_lines = ["[Warning] (PhysX Force Region) - Please ensure collider component marked as trigger exists in entity"]
self._run_test(request, workspace, editor, test_module)
def test_ForceRegion_WorldSpaceForceOnRigidBodies(self, request, workspace, editor, launcher_platform):
from .tests.force_region import ForceRegion_WorldSpaceForceOnRigidBodies as test_module
self._run_test(request, workspace, editor, test_module)
def test_ForceRegion_PointForceOnRigidBodies(self, request, workspace, editor, launcher_platform):
from .tests.force_region import ForceRegion_PointForceOnRigidBodies as test_module
self._run_test(request, workspace, editor, test_module)
def test_ForceRegion_SphereShapedForce(self, request, workspace, editor, launcher_platform):
from .tests.force_region import ForceRegion_SphereShapedForce as test_module
self._run_test(request, workspace, editor, test_module)
def test_ForceRegion_RotationalOffset(self, request, workspace, editor, launcher_platform):
from .tests.force_region import ForceRegion_RotationalOffset as test_module
self._run_test(request, workspace, editor, test_module)
def test_Material_LibraryClearingAssignsDefault(self, request, workspace, editor, launcher_platform):
from .tests.material import Material_LibraryClearingAssignsDefault as test_module
self._run_test(request, workspace, editor, test_module)
def test_Collider_AddColliderComponent(self, request, workspace, editor, launcher_platform):
from .tests.collider import Collider_AddColliderComponent as test_module
self._run_test(request, workspace, editor, test_module)
@pytest.mark.xfail(
reason="This will fail due to this issue ATOM-15487.")
def test_Collider_PxMeshAutoAssignedWhenModifyingRenderMeshComponent(self, request, workspace, editor, launcher_platform):
from .tests.collider import Collider_PxMeshAutoAssignedWhenModifyingRenderMeshComponent as test_module
self._run_test(request, workspace, editor, test_module)
def test_Collider_PxMeshAutoAssignedWhenAddingRenderMeshComponent(self, request, workspace, editor, launcher_platform):
from .tests.collider import Collider_PxMeshAutoAssignedWhenAddingRenderMeshComponent as test_module
self._run_test(request, workspace, editor, test_module)
def test_Collider_MultipleSurfaceSlots(self, request, workspace, editor, launcher_platform):
from .tests.collider import Collider_MultipleSurfaceSlots as test_module
self._run_test(request, workspace, editor, test_module)
def test_Collider_PxMeshNotAutoAssignedWhenNoPhysicsFbx(self, request, workspace, editor, launcher_platform):
from .tests.collider import Collider_PxMeshNotAutoAssignedWhenNoPhysicsFbx as test_module
self._run_test(request, workspace, editor, test_module)
def test_RigidBody_EnablingGravityWorksPoC(self, request, workspace, editor, launcher_platform):
from .tests.rigid_body import RigidBody_EnablingGravityWorksPoC as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
@fm.file_override('physxsystemconfiguration.setreg','Collider_CollisionGroupsWorkflow.setreg_override',
'AutomatedTesting/Registry', search_subdirs=True)
def test_Collider_CollisionGroupsWorkflow(self, request, workspace, editor, launcher_platform):
from .tests.collider import Collider_CollisionGroupsWorkflow as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_Collider_ColliderRotationOffset(self, request, workspace, editor, launcher_platform):
from .tests.collider import Collider_ColliderRotationOffset as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_ForceRegion_ParentChildForcesCombineForces(self, request, workspace, editor, launcher_platform):
from .tests.force_region import ForceRegion_ParentChildForcesCombineForces as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_ShapeCollider_CanBeAddedWitNoWarnings(self, request, workspace, editor, launcher_platform):
from .tests.shape_collider import ShapeCollider_CanBeAddedWitNoWarnings as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_Physics_UndoRedoWorksOnEntityWithPhysComponents(self, request, workspace, editor, launcher_platform):
from .tests import Physics_UndoRedoWorksOnEntityWithPhysComponents as test_module
self._run_test(request, workspace, editor, test_module)
def test_Joints_Fixed2BodiesConstrained(self, request, workspace, editor, launcher_platform):
from .tests.joints import Joints_Fixed2BodiesConstrained as test_module
self._run_test(request, workspace, editor, test_module)
def test_Joints_Hinge2BodiesConstrained(self, request, workspace, editor, launcher_platform):
from .tests.joints import Joints_Hinge2BodiesConstrained as test_module
self._run_test(request, workspace, editor, test_module)
def test_Joints_Ball2BodiesConstrained(self, request, workspace, editor, launcher_platform):
from .tests.joints import Joints_Ball2BodiesConstrained as test_module
self._run_test(request, workspace, editor, test_module)
def test_Joints_FixedBreakable(self, request, workspace, editor, launcher_platform):
from .tests.joints import Joints_FixedBreakable as test_module
self._run_test(request, workspace, editor, test_module)
def test_Joints_HingeBreakable(self, request, workspace, editor, launcher_platform):
from .tests.joints import Joints_HingeBreakable as test_module
self._run_test(request, workspace, editor, test_module)
def test_Joints_BallBreakable(self, request, workspace, editor, launcher_platform):
from .tests.joints import Joints_BallBreakable as test_module
self._run_test(request, workspace, editor, test_module)
def test_Joints_HingeNoLimitsConstrained(self, request, workspace, editor, launcher_platform):
from .tests.joints import Joints_HingeNoLimitsConstrained as test_module
self._run_test(request, workspace, editor, test_module)
def test_Joints_BallNoLimitsConstrained(self, request, workspace, editor, launcher_platform):
from .tests.joints import Joints_BallNoLimitsConstrained as test_module
self._run_test(request, workspace, editor, test_module)
def test_Joints_FixedLeadFollowerCollide(self, request, workspace, editor, launcher_platform):
from .tests.joints import Joints_FixedLeadFollowerCollide as test_module
self._run_test(request, workspace, editor, test_module)
def test_Joints_GlobalFrameConstrained(self, request, workspace, editor, launcher_platform):
from .tests.joints import Joints_GlobalFrameConstrained as test_module
self._run_test(request, workspace, editor, test_module)
@revert_physics_config
def test_Material_DefaultLibraryUpdatedAcrossLevels(self, request, workspace, editor, launcher_platform):
@fm.file_override("physxsystemconfiguration.setreg",
"Material_DefaultLibraryUpdatedAcrossLevels_before.setreg",
"AutomatedTesting",
search_subdirs=True)
def levels_before(self, request, workspace, editor, launcher_platform):
from .tests.material import Material_DefaultLibraryUpdatedAcrossLevels_before as test_module_0
self._run_test(request, workspace, editor, test_module_0)
# File override replaces the previous physxconfiguration file with another where the only difference is the default material library
@fm.file_override("physxsystemconfiguration.setreg",
"Material_DefaultLibraryUpdatedAcrossLevels_after.setreg",
"AutomatedTesting",
search_subdirs=True)
def levels_after(self, request, workspace, editor, launcher_platform):
from .tests.material import Material_DefaultLibraryUpdatedAcrossLevels_after as test_module_1
self._run_test(request, workspace, editor, test_module_1)
levels_before(self, request, workspace, editor, launcher_platform)
levels_after(self, request, workspace, editor, launcher_platform)
@@ -12,7 +12,7 @@ import pytest
import os
import sys
from .FileManagement import FileManagement as fm
from .utils.FileManagement import FileManagement as fm
from ly_test_tools import LAUNCHERS
sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/../automatedtesting_shared')
@@ -29,25 +29,17 @@ revert_physics_config = fm.file_revert_list(['physxdebugconfiguration.setreg', '
class TestAutomation(TestAutomationBase):
## Seems to be flaky, need to investigate
def test_C19536274_GetCollisionName_PrintsName(self, request, workspace, editor, launcher_platform):
from . import C19536274_GetCollisionName_PrintsName as test_module
def test_ScriptCanvas_GetCollisionNameReturnsName(self, request, workspace, editor, launcher_platform):
from .tests.script_canvas import ScriptCanvas_GetCollisionNameReturnsName as test_module
# Fixme: expected_lines=["Layer Name: Right"]
self._run_test(request, workspace, editor, test_module)
## Seems to be flaky, need to investigate
def test_C19536277_GetCollisionName_PrintsNothing(self, request, workspace, editor, launcher_platform):
from . import C19536277_GetCollisionName_PrintsNothing as test_module
def test_ScriptCanvas_GetCollisionNameReturnsNothingWhenHasToggledLayer(self, request, workspace, editor, launcher_platform):
from .tests.script_canvas import ScriptCanvas_GetCollisionNameReturnsNothingWhenHasToggledLayer as test_module
# All groups present in the PhysX Collider that could show up in test
# Fixme: collision_groups = ["All", "None", "All_NoTouchBend", "All_3", "None_1", "All_NoTouchBend_1", "All_2", "None_1_1", "All_NoTouchBend_1_1", "All_1", "None_1_1_1", "All_NoTouchBend_1_1_1", "All_4", "None_1_1_1_1", "All_NoTouchBend_1_1_1_1", "GroupLeft", "GroupRight"]
# Fixme: for group in collision_groups:
# Fixme: unexpected_lines.append(f"GroupName: {group}")
# Fixme: expected_lines=["GroupName: "]
self._run_test(request, workspace, editor, test_module)
## Seems to be flaky, need to investigate
@pytest.mark.xfail(
reason="Editor crashes and errors about files accessed by multiple processes appear in the log.")
@revert_physics_config
def test_C15425929_Undo_Redo(self, request, workspace, editor, launcher_platform):
from . import C15425929_Undo_Redo as test_module
self._run_test(request, workspace, editor, test_module)
@@ -29,14 +29,14 @@ class TestUtils(TestAutomationBase):
:param request: Built in pytest object, and is needed to call the pytest "addfinalizer" teardown command.
:editor: Fixture containing editor details
"""
from . import UtilTest_Physmaterial_Editor as physmaterial_editor_test_module
from .utils import UtilTest_Physmaterial_Editor as physmaterial_editor_test_module
expected_lines = []
unexpected_lines = ["Assert"]
self._run_test(request, workspace, editor, physmaterial_editor_test_module, expected_lines, unexpected_lines)
def test_UtilTest_Tracer_PicksErrorsAndWarnings(self, request, workspace, editor):
from . import UtilTest_Tracer_PicksErrorsAndWarnings as testcase_module
from .utils import UtilTest_Tracer_PicksErrorsAndWarnings as testcase_module
self._run_test(request, workspace, editor, testcase_module, [], [])
def test_FileManagement_FindingFiles(self, workspace):
@@ -262,7 +262,7 @@ class TestUtils(TestAutomationBase):
)
@fm.file_override("default.physxconfiguration", "UtilTest_PhysxConfig_Override.physxconfiguration")
def test_UtilTest_Managed_Files(self, request, workspace, editor):
from . import UtilTest_Managed_Files as test_module
from .utils import UtilTest_Managed_Files as test_module
expected_lines = []
unexpected_lines = ["Assert"]
@@ -21,7 +21,7 @@ class Tests():
# fmt: on
def C6131473_StaticSlice_OnDynamicSliceSpawn():
def Physics_DynamicSliceWithPhysNotSpawnsStaticSlice():
"""
Summary:
@@ -58,11 +58,6 @@ def C6131473_StaticSlice_OnDynamicSliceSpawn():
import os
import sys
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
@@ -76,7 +71,7 @@ def C6131473_StaticSlice_OnDynamicSliceSpawn():
helper.init_idle()
# 1) Open level
helper.open_level("Physics", "C6131473_StaticSlice_OnDynamicSliceSpawn")
helper.open_level("Physics", "Physics_DynamicSliceWithPhysNotSpawnsStaticSlice")
# 2) Enter game mode
helper.enter_game_mode(Tests.enter_game_mode)
@@ -103,8 +98,5 @@ def C6131473_StaticSlice_OnDynamicSliceSpawn():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C6131473_StaticSlice_OnDynamicSliceSpawn)
Report.start_test(Physics_DynamicSliceWithPhysNotSpawnsStaticSlice)
@@ -20,7 +20,7 @@ class Tests:
# fmt: off
def C15425929_Undo_Redo():
def Physics_UndoRedoWorksOnEntityWithPhysComponents():
"""
Summary:
Tests that no error messages arise when using the undo and redo functions in the editor.
@@ -44,11 +44,6 @@ def C15425929_Undo_Redo():
"""
import os
import sys
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
from editor_python_test_tools.utils import Tracer
@@ -58,7 +53,7 @@ def C15425929_Undo_Redo():
helper.init_idle()
# 1) Load the level
helper.open_level("Physics", "C15425929_Undo_Redo")
helper.open_level("Physics", "Physics_UndoRedoWorksOnEntityWithPhysComponents")
with Tracer() as error_tracer:
# Entity to delete and undo and re-delete
@@ -91,8 +86,5 @@ def C15425929_Undo_Redo():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C15425929_Undo_Redo)
Report.start_test(Physics_UndoRedoWorksOnEntityWithPhysComponents)
@@ -23,7 +23,7 @@ class Tests():
# fmt: on
def C5689529_Verify_Terrain_RigidBody_Collider_Mesh():
def Physics_VerifyColliderRigidBodyMeshAndTerrainWorkTogether():
"""
Summary:
@@ -58,11 +58,6 @@ def C5689529_Verify_Terrain_RigidBody_Collider_Mesh():
import os
import sys
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
@@ -76,7 +71,7 @@ def C5689529_Verify_Terrain_RigidBody_Collider_Mesh():
helper.init_idle()
# 1) Open level
helper.open_level("Physics", "C5689529_Verify_Terrain_RigidBody_Collider_Mesh")
helper.open_level("Physics", "Physics_VerifyColliderRigidBodyMeshAndTerrainWorkTogether")
# 2) Enter game mode
helper.enter_game_mode(Tests.enter_game_mode)
@@ -106,8 +101,5 @@ def C5689529_Verify_Terrain_RigidBody_Collider_Mesh():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C5689529_Verify_Terrain_RigidBody_Collider_Mesh)
Report.start_test(Physics_VerifyColliderRigidBodyMeshAndTerrainWorkTogether)
@@ -48,7 +48,7 @@ class Tests():
# fmt: on
def C29032500_EditorComponents_WorldBodyBusWorks():
def Physics_WorldBodyBusWorksOnEditorComponents():
r"""
Summary:
Runs a test to make sure that a WorldBodyBus works property for components
@@ -82,11 +82,6 @@ def C29032500_EditorComponents_WorldBodyBusWorks():
"""
import os
import sys
import ImportPathHelper as imports
imports.init()
import azlmbr.legacy.general as general
import azlmbr.bus
import math
@@ -97,7 +92,7 @@ def C29032500_EditorComponents_WorldBodyBusWorks():
AABB_THRESHOLD = 0.01 # Entities won't move in the simulation
helper.init_idle()
helper.open_level("Physics", "C29032500_EditorComponents_WorldBodyBusWorks")
helper.open_level("Physics", "Physics_WorldBodyBusWorksOnEditorComponents")
def create_aabb(aabb_min_tuple, aabb_max_tuple):
return azlmbr.math.Aabb_CreateFromMinMax(azlmbr.math.Vector3(aabb_min_tuple[0], aabb_min_tuple[1], aabb_min_tuple[2]),
@@ -154,8 +149,5 @@ def C29032500_EditorComponents_WorldBodyBusWorks():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C29032500_EditorComponents_WorldBodyBusWorks)
Report.start_test(Physics_WorldBodyBusWorksOnEditorComponents)
@@ -23,7 +23,7 @@ class Tests:
# fmt: on
def C14654881_CharacterController_SwitchLevels():
def CharacterController_SwitchLevels():
"""
Summary:
Runs an automated test to verify that switching levels from a level containing a character controller component
@@ -53,11 +53,6 @@ def C14654881_CharacterController_SwitchLevels():
import os
import sys
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
import azlmbr.legacy.general as general
@@ -69,7 +64,7 @@ def C14654881_CharacterController_SwitchLevels():
helper.init_idle()
# 1.1) Load level 1 (with character controller)
helper.open_level("Physics", "C14654881_CharacterController_SwitchLevels")
helper.open_level("Physics", "CharacterController_SwitchLevels")
# 1.2) Enter game mode
helper.enter_game_mode(Tests.level1_enter_game_mode)
@@ -82,7 +77,7 @@ def C14654881_CharacterController_SwitchLevels():
helper.exit_game_mode(Tests.level1_exit_game_mode)
# 2.1) Load level 2 (empty level)
helper.open_level("Physics", "C14654881_CharacterController_SwitchLevelsEmpty")
helper.open_level("Physics", "Base")
# 2.2) Enter game mode
helper.enter_game_mode(Tests.level2_enter_game_mode)
@@ -93,8 +88,5 @@ def C14654881_CharacterController_SwitchLevels():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C14654881_CharacterController_SwitchLevels)
Report.start_test(CharacterController_SwitchLevels)
@@ -20,7 +20,7 @@ class Tests():
# fmt: on
def C4976236_AddPhysxColliderComponent():
def Collider_AddColliderComponent():
"""
Summary:
Opens an empty level and creates an Entity with PhysX Collider. Verify that editor remains stable in Game mode.
@@ -42,14 +42,12 @@ def C4976236_AddPhysxColliderComponent():
"""
# Helper file Imports
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.editor_entity_utils import EditorEntity
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
from editor_python_test_tools.utils import Tracer
from asset_utils import Asset
from editor_python_test_tools.asset_utils import Asset
helper.init_idle()
# 1) Load the level
@@ -84,8 +82,5 @@ def C4976236_AddPhysxColliderComponent():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C4976236_AddPhysxColliderComponent)
Report.start_test(Collider_AddColliderComponent)
@@ -20,7 +20,7 @@ class Tests:
# fmt: on
def C4976227_Collider_NewGroup():
def Collider_AddingNewGroupWorks():
"""
Summary:
Runs an automated test to ensure that a collision group can be added.
@@ -51,11 +51,6 @@ def C4976227_Collider_NewGroup():
import os
import sys
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
@@ -64,7 +59,7 @@ def C4976227_Collider_NewGroup():
helper.init_idle()
# 1) Open Level
helper.open_level("Physics", "C4976227_Collider_NewGroup")
helper.open_level("Physics", "Collider_AddingNewGroupWorks")
# 2) Enter game mode
helper.enter_game_mode(Tests.enter_game_mode)
@@ -84,8 +79,5 @@ def C4976227_Collider_NewGroup():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C4976227_Collider_NewGroup)
Report.start_test(Collider_AddingNewGroupWorks)
@@ -19,7 +19,7 @@ class Tests():
# fmt: on
def C4982801_PhysXColliderShape_CanBeSelected():
def Collider_BoxShapeEditting():
"""
Summary:
Adding PhysX Collider and Shape components to test entity, then attempting to modify the shape's dimensions
@@ -43,9 +43,7 @@ def C4982801_PhysXColliderShape_CanBeSelected():
:return: None
"""
# Helper Files
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.editor_entity_utils import EditorEntity as Entity
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
@@ -103,8 +101,5 @@ def C4982801_PhysXColliderShape_CanBeSelected():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C4982801_PhysXColliderShape_CanBeSelected)
Report.start_test(Collider_BoxShapeEditting)
@@ -19,7 +19,7 @@ class Tests():
# fmt: on
def C4982802_PhysXColliderShape_CanBeSelected():
def Collider_CapsuleShapeEditting():
"""
Summary:
Adding PhysX Collider and Shape components to test entity, then attempting to modify the shape's dimensions
@@ -43,9 +43,7 @@ def C4982802_PhysXColliderShape_CanBeSelected():
:return: None
"""
# Helper Files
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.editor_entity_utils import EditorEntity as Entity
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
@@ -103,8 +101,5 @@ def C4982802_PhysXColliderShape_CanBeSelected():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C4982802_PhysXColliderShape_CanBeSelected)
Report.start_test(Collider_CapsuleShapeEditting)
@@ -18,7 +18,7 @@ class Tests():
# fmt: on
def C14861500_DefaultSetting_ColliderShape():
def Collider_CheckDefaultShapeSettingIsPxMesh():
"""
Summary:
Check the default for Shape on the PhysX Collider component
@@ -40,9 +40,7 @@ def C14861500_DefaultSetting_ColliderShape():
:return: None
"""
# Helper Files
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.editor_entity_utils import EditorEntity as Entity
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
@@ -70,8 +68,5 @@ def C14861500_DefaultSetting_ColliderShape():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C14861500_DefaultSetting_ColliderShape)
Report.start_test(Collider_CheckDefaultShapeSettingIsPxMesh)
@@ -25,7 +25,7 @@ class Tests:
# fmt: on
def C4982797_Collider_ColliderOffset():
def Collider_ColliderPositionOffset():
# type: () -> None
"""
Summary:
@@ -87,9 +87,7 @@ def C4982797_Collider_ColliderOffset():
import sys
# Internal editor imports
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
@@ -289,7 +287,7 @@ def C4982797_Collider_ColliderOffset():
helper.init_idle()
# 1) Open level
helper.open_level("Physics", "C4982797_Collider_ColliderOffset")
helper.open_level("Physics", "Collider_ColliderPositionOffset")
# 2) Enter game mode
helper.enter_game_mode(Tests.enter_game_mode)
@@ -332,8 +330,5 @@ def C4982797_Collider_ColliderOffset():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C4982797_Collider_ColliderOffset)
Report.start_test(Collider_ColliderPositionOffset)
@@ -29,7 +29,7 @@ class Tests:
# fmt: on
def C4982798_Collider_ColliderRotationOffset():
def Collider_ColliderRotationOffset():
# type: () -> None
"""
Summary:
@@ -86,9 +86,7 @@ def C4982798_Collider_ColliderRotationOffset():
:return: None
"""
import ImportPathHelper as imports
imports.init()
# Internal editor imports
@@ -257,7 +255,7 @@ def C4982798_Collider_ColliderRotationOffset():
helper.init_idle()
# 1) Open level
helper.open_level("Physics", "C4982798_Collider_ColliderRotationOffset")
helper.open_level("Physics", "Collider_ColliderRotationOffset")
# 2) Enter game mode
helper.enter_game_mode(Tests.enter_game_mode)
@@ -300,8 +298,5 @@ def C4982798_Collider_ColliderRotationOffset():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C4982798_Collider_ColliderRotationOffset)
Report.start_test(Collider_ColliderRotationOffset)
@@ -38,7 +38,7 @@ class Tests:
# fmt: on
def C3510644_Collider_CollisionGroups():
def Collider_CollisionGroupsWorkflow():
# type: () -> None
"""
Summary:
@@ -90,11 +90,6 @@ def C3510644_Collider_CollisionGroups():
import os
import sys
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
@@ -266,7 +261,7 @@ def C3510644_Collider_CollisionGroups():
# 1) Open level
helper.init_idle()
helper.open_level("Physics", "C3510644_Collider_CollisionGroups")
helper.open_level("Physics", "Collider_CollisionGroupsWorkflow")
# 2) Enter game mode
helper.enter_game_mode(Tests.enter_game_mode)
@@ -362,8 +357,5 @@ def C3510644_Collider_CollisionGroups():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C3510644_Collider_CollisionGroups)
Report.start_test(Collider_CollisionGroupsWorkflow)
@@ -30,7 +30,7 @@ class Tests:
# fmt: on
def C4982593_PhysXCollider_CollisionLayerTest():
def Collider_DiffCollisionGroupDiffCollidingLayersNotCollide():
# type: () -> None
"""
Summary:
@@ -67,11 +67,6 @@ def C4982593_PhysXCollider_CollisionLayerTest():
import os
import sys
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
import azlmbr.legacy.general as general
@@ -101,7 +96,7 @@ def C4982593_PhysXCollider_CollisionLayerTest():
# 1) Open level / Enter game mode
helper.init_idle()
helper.open_level("Physics", "C4982593_PhysxCollider_CollisionLayerTest")
helper.open_level("Physics", "Collider_DiffCollisionGroupDiffCollidingLayersNotCollide")
helper.enter_game_mode(Tests.enter_game_mode)
# 2) Retrieve/validate entities
@@ -231,8 +226,5 @@ def C4982593_PhysXCollider_CollisionLayerTest():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C4982593_PhysXCollider_CollisionLayerTest)
Report.start_test(Collider_DiffCollisionGroupDiffCollidingLayersNotCollide)
@@ -23,7 +23,7 @@ class Tests():
# fmt: on
def C4044695_PhysXCollider_AddMultipleSurfaceFbx():
def Collider_MultipleSurfaceSlots():
"""
Summary:
Create entity with Mesh and PhysX Collider components and assign a fbx file in both the components.
@@ -48,21 +48,19 @@ def C4044695_PhysXCollider_AddMultipleSurfaceFbx():
import os
# Helper Files
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.editor_entity_utils import EditorEntity as Entity
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
from asset_utils import Asset
from editor_python_test_tools.asset_utils import Asset
# Constants
PHYSICS_ASSET_INDEX = 7 # Hardcoded enum index value for Shape property
SURFACE_TAG_COUNT = 4 # Number of surface tags included in used asset
# Asset paths
STATIC_MESH = os.path.join("assets", "c4044695_physxcollider_addmultiplesurfacefbx", "test.azmodel")
PHYSX_MESH = os.path.join("assets", "c4044695_physxcollider_addmultiplesurfacefbx", "test.pxmesh")
STATIC_MESH = os.path.join("assets", "Physics", "Collider_MultipleSurfaceSlots", "test.azmodel")
PHYSX_MESH = os.path.join("assets", "Physics","Collider_MultipleSurfaceSlots", "test.pxmesh")
helper.init_idle()
# 1) Load the empty level
@@ -88,12 +86,12 @@ def C4044695_PhysXCollider_AddMultipleSurfaceFbx():
px_asset = Asset.find_asset_by_path(PHYSX_MESH)
collider_component.set_component_property_value("Shape Configuration|Asset|PhysX Mesh", px_asset.id)
px_asset.id = collider_component.get_component_property_value("Shape Configuration|Asset|PhysX Mesh")
Report.result(Tests.assign_px_mesh_asset, px_asset.get_path() == PHYSX_MESH.replace(os.sep, "/"))
Report.result(Tests.assign_px_mesh_asset, px_asset.get_path().lower() == PHYSX_MESH.replace(os.sep, "/").lower())
mesh_asset = Asset.find_asset_by_path(STATIC_MESH)
mesh_component.set_component_property_value("Controller|Configuration|Mesh Asset", mesh_asset.id)
mesh_asset.id = mesh_component.get_component_property_value("Controller|Configuration|Mesh Asset")
Report.result(Tests.assign_mesh_asset, mesh_asset.get_path() == STATIC_MESH.replace(os.sep, "/"))
Report.result(Tests.assign_mesh_asset, mesh_asset.get_path().lower() == STATIC_MESH.replace(os.sep, "/").lower())
# 6) Check if multiple material slots show up under Materials section in the PhysX Collider component
pte = collider_component.get_property_tree()
@@ -107,8 +105,5 @@ def C4044695_PhysXCollider_AddMultipleSurfaceFbx():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C4044695_PhysXCollider_AddMultipleSurfaceFbx)
Report.start_test(Collider_MultipleSurfaceSlots)
@@ -30,7 +30,7 @@ class Tests:
# fmt: on
def C4976245_PhysXCollider_CollisionLayerTest():
def Collider_NoneCollisionGroupSameLayerNotCollide():
# type: () -> None
"""
Summary:
@@ -67,11 +67,6 @@ def C4976245_PhysXCollider_CollisionLayerTest():
import os
import sys
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
import azlmbr.legacy.general as general
@@ -110,7 +105,7 @@ def C4976245_PhysXCollider_CollisionLayerTest():
# 1) Open level / Enter game mode
helper.init_idle()
helper.open_level("Physics", "C4976245_PhysxCollider_CollisionLayerTest")
helper.open_level("Physics", "Collider_NoneCollisionGroupSameLayerNotCollide")
helper.enter_game_mode(Tests.enter_game_mode)
# 2) Retrieve/validate entities
@@ -223,8 +218,5 @@ def C4976245_PhysXCollider_CollisionLayerTest():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C4976245_PhysXCollider_CollisionLayerTest)
Report.start_test(Collider_NoneCollisionGroupSameLayerNotCollide)
@@ -20,7 +20,7 @@ class Tests():
# fmt: on
def C14861501_PhysXCollider_RenderMeshAutoAssigned():
def Collider_PxMeshAutoAssignedWhenAddingRenderMeshComponent():
"""
Summary:
Create entity with Mesh component and assign a render mesh to the Mesh component. Add Physics Collider component
@@ -48,18 +48,16 @@ def C14861501_PhysXCollider_RenderMeshAutoAssigned():
import os
# Helper Files
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.editor_entity_utils import EditorEntity as Entity
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
from asset_utils import Asset
from editor_python_test_tools.asset_utils import Asset
# Asset paths
STATIC_MESH = os.path.join("assets", "c14861501_physxcollider_rendermeshautoassigned", "spherebot", "r0-b_body.azmodel")
STATIC_MESH = os.path.join("assets", "Physics", "Collider_PxMeshAutoAssigned", "spherebot", "r0-b_body.azmodel")
PHYSX_MESH = os.path.join(
"assets", "c14861501_physxcollider_rendermeshautoassigned", "spherebot", "r0-b_body.pxmesh"
"assets", "Physics", "Collider_PxMeshAutoAssigned", "spherebot", "r0-b_body.pxmesh"
)
helper.init_idle()
@@ -78,7 +76,7 @@ def C14861501_PhysXCollider_RenderMeshAutoAssigned():
mesh_asset = Asset.find_asset_by_path(STATIC_MESH)
mesh_component.set_component_property_value("Controller|Configuration|Mesh Asset", mesh_asset.id)
mesh_asset.id = mesh_component.get_component_property_value("Controller|Configuration|Mesh Asset")
Report.result(Tests.assign_mesh_asset, mesh_asset.get_path() == STATIC_MESH.replace(os.sep, "/"))
Report.result(Tests.assign_mesh_asset, mesh_asset.get_path().lower() == STATIC_MESH.replace(os.sep, "/").lower())
# 5) Add PhysX Collider component
test_component = test_entity.add_component("PhysX Collider")
@@ -87,12 +85,9 @@ def C14861501_PhysXCollider_RenderMeshAutoAssigned():
# 6) The physics asset in PhysX Collider component is auto-assigned.
asset_id = test_component.get_component_property_value("Shape Configuration|Asset|PhysX Mesh")
test_asset = Asset(asset_id)
Report.result(Tests.automatic_shape_change, test_asset.get_path() == PHYSX_MESH.replace(os.sep, "/"))
Report.result(Tests.automatic_shape_change, test_asset.get_path().lower() == PHYSX_MESH.replace(os.sep, "/").lower())
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C14861501_PhysXCollider_RenderMeshAutoAssigned)
Report.start_test(Collider_PxMeshAutoAssignedWhenAddingRenderMeshComponent)
@@ -20,7 +20,7 @@ class Tests():
# fmt: on
def C14861502_PhysXCollider_AssetAutoAssigned():
def Collider_PxMeshAutoAssignedWhenModifyingRenderMeshComponent():
"""
Summary:
Create entity with Mesh and PhysX Collider components, then assign a render mesh to the Mesh component
@@ -47,13 +47,11 @@ def C14861502_PhysXCollider_AssetAutoAssigned():
import os
# Helper Files
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.editor_entity_utils import EditorEntity as Entity
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
from asset_utils import Asset
from editor_python_test_tools.asset_utils import Asset
# Open 3D Engine Imports
import azlmbr.legacy.general as general
@@ -93,8 +91,5 @@ def C14861502_PhysXCollider_AssetAutoAssigned():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C14861502_PhysXCollider_AssetAutoAssigned)
Report.start_test(Collider_PxMeshAutoAssignedWhenModifyingRenderMeshComponent)
@@ -27,7 +27,7 @@ class Tests():
# fmt: on
def C4982803_Enable_PxMesh_Option():
def Collider_PxMeshConvexMeshCollides():
"""
Summary:
Load level with Entity above ground having PhysX Collider, PhysX Rigid Body and Mesh components.
@@ -57,13 +57,11 @@ def C4982803_Enable_PxMesh_Option():
import os
# Helper Files
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.editor_entity_utils import EditorEntity
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
from asset_utils import Asset
from editor_python_test_tools.asset_utils import Asset
import azlmbr.math as math
# Open 3D Engine Imports
@@ -72,7 +70,7 @@ def C4982803_Enable_PxMesh_Option():
# Constants
PHYSICS_ASSET_INDEX = 7 # Hardcoded enum index value for Shape property
MESH_ASSET_PATH = os.path.join("assets", "c4982803_enable_pxmesh_option", "spherebot", "r0-b_body.pxmesh")
MESH_ASSET_PATH = os.path.join("assets", "Physics", "Collider_PxMeshConvexMeshCollides", "spherebot", "r0-b_body.pxmesh")
TIMEOUT = 2.0
helper.init_idle()
@@ -101,7 +99,7 @@ def C4982803_Enable_PxMesh_Option():
mesh_asset = Asset.find_asset_by_path(MESH_ASSET_PATH)
collider_component.set_component_property_value("Shape Configuration|Asset|PhysX Mesh", mesh_asset.id)
mesh_asset.id = collider_component.get_component_property_value("Shape Configuration|Asset|PhysX Mesh")
Report.result(Tests.assign_fbx_mesh, mesh_asset.get_path() == MESH_ASSET_PATH.replace(os.sep, "/"))
Report.result(Tests.assign_fbx_mesh, mesh_asset.get_path().lower() == MESH_ASSET_PATH.replace(os.sep, "/").lower())
# 5) Create terrain entity with physx terrain
terrain = EditorEntity.create_editor_entity_at([512.0, 512.0, 31.0], "Terrain")
@@ -141,8 +139,5 @@ def C4982803_Enable_PxMesh_Option():
helper.exit_game_mode(Tests.exit_game_mode)
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C4982803_Enable_PxMesh_Option)
Report.start_test(Collider_PxMeshConvexMeshCollides)
@@ -21,7 +21,7 @@ class Tests():
# fmt:on
def C14861498_ConfirmError_NoPxMesh():
def Collider_PxMeshErrorIfNoMesh():
"""
Summary:
This test looks for the presence of an error when an entity with a PhysXCollider has no physics mesh, but has its
@@ -48,11 +48,6 @@ def C14861498_ConfirmError_NoPxMesh():
"""
import os
import sys
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
from editor_python_test_tools.utils import Tracer
@@ -68,7 +63,7 @@ def C14861498_ConfirmError_NoPxMesh():
'EditorColliderComponent' in warningInfo.message for warningInfo in warning_tracer.warnings)
# 1) Load level / enter game mode
helper.open_level("Physics", "C14861498_ConfirmError_NoPxMesh")
helper.open_level("Physics", "Collider_PxMeshErrorIfNoMesh")
helper.enter_game_mode(Tests.enter_game_mode)
# 2) Find game entity
@@ -85,8 +80,5 @@ def C14861498_ConfirmError_NoPxMesh():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C14861498_ConfirmError_NoPxMesh)
Report.start_test(Collider_PxMeshErrorIfNoMesh)
@@ -22,7 +22,7 @@ class Tests():
# fmt: on
def run():
def Collider_PxMeshNotAutoAssignedWhenNoPhysicsFbx():
"""
Summary:
Create entity with Mesh component and assign a render mesh that has no physics asset to the Mesh component.
@@ -52,20 +52,18 @@ def run():
import os
# Helper Files
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.editor_entity_utils import EditorEntity as Entity
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
from editor_python_test_tools.utils import Tracer
from asset_utils import Asset
from editor_python_test_tools.asset_utils import Asset
# Open 3D Engine Imports
import azlmbr.asset as azasset
# Asset paths
STATIC_MESH = os.path.join("assets", "c14861504_rendermeshasset_withnopxasset", "test_asset.azmodel")
STATIC_MESH = os.path.join("assets", "Physics", "Collider_PxMeshNotAutoAssignedWhenNoPhysicsFbx", "test_asset.azmodel")
helper.init_idle()
# 1) Load the empty level
@@ -83,7 +81,7 @@ def run():
mesh_asset = Asset.find_asset_by_path(STATIC_MESH)
mesh_component.set_component_property_value("Controller|Configuration|Mesh Asset", mesh_asset.id)
mesh_asset.id = mesh_component.get_component_property_value("Controller|Configuration|Mesh Asset")
Report.result(Tests.assign_mesh_asset, mesh_asset.get_path() == STATIC_MESH.replace(os.sep, "/"))
Report.result(Tests.assign_mesh_asset, mesh_asset.get_path().lower() == STATIC_MESH.replace(os.sep, "/").lower())
# 5) Add PhysX Collider component
test_component = test_entity.add_component("PhysX Collider")
@@ -102,4 +100,5 @@ def run():
if __name__ == "__main__":
run()
from editor_python_test_tools.utils import Report
Report.start_test(Collider_PxMeshNotAutoAssignedWhenNoPhysicsFbx)
@@ -25,7 +25,7 @@ class Tests():
# fmt: on
def C4976243_Collision_SameCollisionGroupDiffCollisionLayers():
def Collider_SameCollisionGroupDiffLayersCollide():
"""
Summary:
@@ -66,11 +66,6 @@ def C4976243_Collision_SameCollisionGroupDiffCollisionLayers():
import os
import sys
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
@@ -83,7 +78,7 @@ def C4976243_Collision_SameCollisionGroupDiffCollisionLayers():
helper.init_idle()
# 1) Open level
helper.open_level("Physics", "C4976243_Collision_SameCollisionGroupDiffCollisionLayers")
helper.open_level("Physics", "Collider_SameCollisionGroupDiffLayersCollide")
# 2) Enter game mode
helper.enter_game_mode(Tests.enter_game_mode)
@@ -127,8 +122,5 @@ def C4976243_Collision_SameCollisionGroupDiffCollisionLayers():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C4976243_Collision_SameCollisionGroupDiffCollisionLayers)
Report.start_test(Collider_SameCollisionGroupDiffLayersCollide)
@@ -26,7 +26,7 @@ class Tests:
# fmt: on
def C4976244_Collider_SameGroupSameLayerCollision():
def Collider_SameCollisionGroupSameCustomLayerCollide():
# type: () -> None
"""
Summary:
@@ -62,11 +62,6 @@ def C4976244_Collider_SameGroupSameLayerCollision():
import os
import sys
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
@@ -132,7 +127,7 @@ def C4976244_Collider_SameGroupSameLayerCollision():
# Main Script
# 1) Load the level
helper.init_idle()
helper.open_level("physics", "C4976244_Collider_SameGroupSameLayerCollision")
helper.open_level("physics", "Collider_SameCollisionGroupSameCustomLayerCollide")
# 2) Enter Game Mode
helper.enter_game_mode(Tests.enter_game_mode)
@@ -185,8 +180,5 @@ def C4976244_Collider_SameGroupSameLayerCollision():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C4976244_Collider_SameGroupSameLayerCollision)
Report.start_test(Collider_SameCollisionGroupSameCustomLayerCollide)
@@ -26,7 +26,7 @@ class Tests():
# fmt: on
def C4976242_Collision_SameCollisionlayerSameCollisiongroup():
def Collider_SameCollisionGroupSameLayerCollide():
"""
Summary:
@@ -62,11 +62,6 @@ def C4976242_Collision_SameCollisionlayerSameCollisiongroup():
import os
import sys
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
@@ -82,7 +77,7 @@ def C4976242_Collision_SameCollisionlayerSameCollisiongroup():
helper.init_idle()
# 1) Open level and Enter game mode
helper.open_level("Physics", "C4976242_Collision_SameCollisionlayerSameCollisiongroup")
helper.open_level("Physics", "Collider_SameCollisionGroupSameLayerCollide")
helper.enter_game_mode(Tests.enter_game_mode)
# 2) Retrieve and validate Entities
@@ -188,8 +183,5 @@ def C4976242_Collision_SameCollisionlayerSameCollisiongroup():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C4976242_Collision_SameCollisionlayerSameCollisiongroup)
Report.start_test(Collider_SameCollisionGroupSameLayerCollide)
@@ -19,7 +19,7 @@ class Tests():
# fmt: on
def C4982800_PhysXColliderShape_CanBeSelected():
def Collider_SphereShapeEditting():
"""
Summary:
Adding PhysX Collider and Shape components to test entity, then attempting to modify the shape's dimensions
@@ -43,9 +43,7 @@ def C4982800_PhysXColliderShape_CanBeSelected():
:return: None
"""
# Helper Files
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.editor_entity_utils import EditorEntity as Entity
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
@@ -91,8 +89,5 @@ def C4982800_PhysXColliderShape_CanBeSelected():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C4982800_PhysXColliderShape_CanBeSelected)
Report.start_test(Collider_SphereShapeEditting)
@@ -30,7 +30,7 @@ class Tests:
# fmt: on
def C4982595_Collider_TriggerDisablesCollision():
def Collider_TriggerPassThrough():
"""
Summary:
This script runs an automated test to verify that when an entity's PhysX collider is set as a trigger, the entity no
@@ -75,11 +75,6 @@ def C4982595_Collider_TriggerDisablesCollision():
# Setup path
import os
import sys
import ImportPathHelper as imports
imports.init()
import azlmbr.legacy.general as general
import azlmbr.bus
import azlmbr.components
@@ -189,7 +184,7 @@ def C4982595_Collider_TriggerDisablesCollision():
# 1) Open level and enter game mode
helper.init_idle()
helper.open_level("Physics", "C4982595_Collider_TriggerDisablesCollision")
helper.open_level("Physics", "Collider_TriggerPassThrough")
helper.enter_game_mode(Tests.enter_game_mode)
# 2) Retrieve and validate entities
@@ -234,8 +229,5 @@ def C4982595_Collider_TriggerDisablesCollision():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C4982595_Collider_TriggerDisablesCollision)
Report.start_test(Collider_TriggerPassThrough)
@@ -30,7 +30,7 @@ class Tests:
# fmt: on
def C5959760_PhysXForceRegion_PointForceExertion():
def ForceRegion_CapsuleShapedForce():
# type: () -> None
"""
Summary:
@@ -63,11 +63,6 @@ def C5959760_PhysXForceRegion_PointForceExertion():
"""
import os
import sys
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
@@ -126,7 +121,7 @@ def C5959760_PhysXForceRegion_PointForceExertion():
# 1) Open level / Enter game mode
helper.init_idle()
helper.open_level("Physics", "C5959760_PhysXForceRegion_PointForceExertion")
helper.open_level("Physics", "ForceRegion_CapsuleShapedForce")
helper.enter_game_mode(Tests.enter_game_mode)
# 2) Retrieve entities
@@ -223,8 +218,5 @@ def C5959760_PhysXForceRegion_PointForceExertion():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C5959760_PhysXForceRegion_PointForceExertion)
Report.start_test(ForceRegion_CapsuleShapedForce)
@@ -50,7 +50,7 @@ class Tests:
# fmt: on
def C12868578_ForceRegion_DirectionHasNoAffectOnMagnitude():
def ForceRegion_DirectionHasNoAffectOnTotalForce():
"""
Summary: Check that world and local space force direction should not affect magnitude of force exerted on entity.
@@ -86,11 +86,6 @@ def C12868578_ForceRegion_DirectionHasNoAffectOnMagnitude():
"""
import os
import sys
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
@@ -224,7 +219,7 @@ def C12868578_ForceRegion_DirectionHasNoAffectOnMagnitude():
# Main Script
helper.init_idle()
# 1) Open Level
helper.open_level("Physics", "C12868578_ForceRegion_DirectionHasNoAffectOnMagnitude")
helper.open_level("Physics", "ForceRegion_DirectionHasNoAffectOnTotalForce")
# 2) Enter Game Mode
helper.enter_game_mode(Tests.enter_game_mode)
@@ -283,8 +278,5 @@ def C12868578_ForceRegion_DirectionHasNoAffectOnMagnitude():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C12868578_ForceRegion_DirectionHasNoAffectOnMagnitude)
Report.start_test(ForceRegion_DirectionHasNoAffectOnTotalForce)
@@ -37,7 +37,7 @@ class Tests():
# fmt: on
def C6321601_Force_HighValuesDirectionAxes():
def ForceRegion_HighValuesDirectionAxesWorkWithNoError():
"""
Summary:
@@ -90,11 +90,6 @@ def C6321601_Force_HighValuesDirectionAxes():
import os
import sys
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
from editor_python_test_tools.utils import Tracer
@@ -209,7 +204,7 @@ def C6321601_Force_HighValuesDirectionAxes():
return entity_error_tracer.has_errors
# 1) Open level
helper.open_level("Physics", "C6321601_Force_HighValuesDirectionAxes")
helper.open_level("Physics", "ForceRegion_HighValuesDirectionAxesWorkWithNoError")
# 2) Enter game mode
helper.enter_game_mode(Tests.enter_game_mode)
@@ -246,10 +241,6 @@ def C6321601_Force_HighValuesDirectionAxes():
Report.result(Tests.error_not_found, not has_physx_error())
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C6321601_Force_HighValuesDirectionAxes)
Report.start_test(ForceRegion_HighValuesDirectionAxesWorkWithNoError)
@@ -24,7 +24,7 @@ class Tests:
# fmt: on
def C5959763_ForceRegion_ForceRegionImpulsesCube():
def ForceRegion_ImpulsesBoxShapedRigidBody():
"""
This run() function will open a a level and validate that a Cube gets impulsed by a force region.
It does this by:
@@ -42,10 +42,6 @@ def C5959763_ForceRegion_ForceRegionImpulsesCube():
# Setup path
import os, sys
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
import azlmbr.legacy.general as general
@@ -82,7 +78,7 @@ def C5959763_ForceRegion_ForceRegionImpulsesCube():
UPWARD_Z_VECTOR = 1.0
# Open level
helper.open_level("Physics", "C5959763_ForceRegion_ForceRegionImpulsesCube")
helper.open_level("Physics", "ForceRegion_ImpulsesBoxShapedRigidBody")
# Enter game mode
helper.enter_game_mode(Tests.enter_game_mode)
@@ -165,8 +161,5 @@ def C5959763_ForceRegion_ForceRegionImpulsesCube():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C5959763_ForceRegion_ForceRegionImpulsesCube)
Report.start_test(ForceRegion_ImpulsesBoxShapedRigidBody)
@@ -24,7 +24,7 @@ class Tests:
# fmt: on
def C5959764_ForceRegion_ForceRegionImpulsesCapsule():
def ForceRegion_ImpulsesCapsuleShapedRigidBody():
"""
This run() function will open a a level and validate that a Capsule gets impulsed by a force region.
It does this by:
@@ -42,9 +42,7 @@ def C5959764_ForceRegion_ForceRegionImpulsesCapsule():
# Setup path
import os, sys
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
@@ -82,7 +80,7 @@ def C5959764_ForceRegion_ForceRegionImpulsesCapsule():
UPWARD_Z_VECTOR = 1.0
# Open level
helper.open_level("Physics", "C5959764_ForceRegion_ForceRegionImpulsesCapsule")
helper.open_level("Physics", "ForceRegion_ImpulsesCapsuleShapedRigidBody")
# Enter game mode
helper.enter_game_mode(Tests.enter_game_mode)
@@ -167,8 +165,5 @@ def C5959764_ForceRegion_ForceRegionImpulsesCapsule():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C5959764_ForceRegion_ForceRegionImpulsesCapsule)
Report.start_test(ForceRegion_ImpulsesCapsuleShapedRigidBody)
@@ -23,7 +23,7 @@ class Tests:
tests_completed = ("Tests completed", "Tests did not complete")
# fmt: on
def C5959765_ForceRegion_AssetGetsImpulsed():
def ForceRegion_ImpulsesPxMeshShapedRigidBody():
"""
# This run() function will open a a level and validate that a asset gets impulsed by a force region.
# It does this by:
@@ -45,9 +45,7 @@ def C5959765_ForceRegion_AssetGetsImpulsed():
# Setup path
import os, sys
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
@@ -85,7 +83,7 @@ def C5959765_ForceRegion_AssetGetsImpulsed():
UPWARD_Z_VECTOR = 1.0
# 1) Open level
helper.open_level("Physics", "C5959765_ForceRegion_AssetGetsImpulsed")
helper.open_level("Physics", "ForceRegion_ImpulsesPxMeshShapedRigidBody")
# 2) Enters Game mode
helper.enter_game_mode(Tests.enter_game_mode)
@@ -169,8 +167,5 @@ def C5959765_ForceRegion_AssetGetsImpulsed():
helper.exit_game_mode(Tests.exit_game_mode)
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C5959765_ForceRegion_AssetGetsImpulsed)
Report.start_test(ForceRegion_ImpulsesPxMeshShapedRigidBody)
@@ -34,7 +34,7 @@ class Tests:
# fmt: on
def C5932042_PhysXForceRegion_LinearDamping():
def ForceRegion_LinearDampingForceOnRigidBodies():
# type: () -> None
"""
Summary:
@@ -71,11 +71,6 @@ def C5932042_PhysXForceRegion_LinearDamping():
import os
import sys
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
@@ -136,7 +131,7 @@ def C5932042_PhysXForceRegion_LinearDamping():
# 1) Open level / Enter game mode
helper.init_idle()
helper.open_level("Physics", "C5932042_PhysXForceRegion_LinearDamping")
helper.open_level("Physics", "ForceRegion_LinearDampingForceOnRigidBodies")
helper.enter_game_mode(Tests.enter_game_mode)
# 2) Retrieve and validate entities
@@ -269,8 +264,5 @@ def C5932042_PhysXForceRegion_LinearDamping():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C5932042_PhysXForceRegion_LinearDamping)
Report.start_test(ForceRegion_LinearDampingForceOnRigidBodies)
@@ -30,7 +30,7 @@ class Tests:
# fmt: on
def C5932041_PhysXForceRegion_LocalSpaceForceOnRigidBodies():
def ForceRegion_LocalSpaceForceOnRigidBodies():
"""
Summary:
Runs an automated test to ensure that when a rigid body enters a force region a local space force is exerted.
@@ -65,11 +65,6 @@ def C5932041_PhysXForceRegion_LocalSpaceForceOnRigidBodies():
"""
import os
import sys
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
@@ -85,7 +80,7 @@ def C5932041_PhysXForceRegion_LocalSpaceForceOnRigidBodies():
helper.init_idle()
# 1) Open level
helper.open_level("Physics", "C5932041_PhysXForceRegion_LocalSpaceForceOnRigidBodies")
helper.open_level("Physics", "ForceRegion_LocalSpaceForceOnRigidBodies")
# 2) Enter game mode
helper.enter_game_mode(Tests.enter_game_mode)
@@ -161,8 +156,5 @@ def C5932041_PhysXForceRegion_LocalSpaceForceOnRigidBodies():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C5932041_PhysXForceRegion_LocalSpaceForceOnRigidBodies)
Report.start_test(ForceRegion_LocalSpaceForceOnRigidBodies)
@@ -22,7 +22,7 @@ class Tests():
# fmt: on
def C5968760_ForceRegion_CheckNetForceChange():
def ForceRegion_MovingForceRegionChangesNetForce():
"""
Summary:
@@ -61,11 +61,6 @@ def C5968760_ForceRegion_CheckNetForceChange():
import os
import sys
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
@@ -101,7 +96,7 @@ def C5968760_ForceRegion_CheckNetForceChange():
helper.init_idle()
# 1) Open level
helper.open_level("Physics", "C5968760_ForceRegion_CheckNetForceChange")
helper.open_level("Physics", "ForceRegion_MovingForceRegionChangesNetForce")
# 2) Enter game mode
helper.enter_game_mode(Tests.enter_game_mode)
@@ -163,8 +158,5 @@ def C5968760_ForceRegion_CheckNetForceChange():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C5968760_ForceRegion_CheckNetForceChange)
Report.start_test(ForceRegion_MovingForceRegionChangesNetForce)
@@ -32,7 +32,7 @@ class Tests:
import os, sys
def C5968759_ForceRegion_ExertsSeveralForcesOnRigidBody():
def ForceRegion_MultipleComponentsCombineForces():
"""
Run() will open a a level and validate that the spheres are affected by the force regions as expected.
@@ -55,9 +55,7 @@ def C5968759_ForceRegion_ExertsSeveralForcesOnRigidBody():
Second force region: Name = "Force Region Simple Drag" Applies a drag force on both spheres
Setup path
"""
import ImportPathHelper as imports
imports.init()
import azlmbr.legacy.general as general
@@ -94,7 +92,7 @@ def C5968759_ForceRegion_ExertsSeveralForcesOnRigidBody():
# 1) Opens level with spheres above a force region
helper.init_idle()
helper.open_level("Physics", "C5968759_ForceRegion_ExertsSeveralForcesOnRigidBody")
helper.open_level("Physics", "ForceRegion_MultipleComponentsCombineForces")
helper.enter_game_mode(Tests.enter_game_mode)
# 2) Finds the entities in the scene
@@ -175,8 +173,5 @@ def C5968759_ForceRegion_ExertsSeveralForcesOnRigidBody():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C5968759_ForceRegion_ExertsSeveralForcesOnRigidBody)
Report.start_test(ForceRegion_MultipleComponentsCombineForces)
@@ -31,7 +31,7 @@ class Tests:
# fmt: on
def C5959810_ForceRegion_ForceRegionCombinesForces():
def ForceRegion_MultipleForcesInSameComponentCombineForces():
# type: () -> None
"""
Summary: Runs an automated test to ensure that separate forces in a force region add correctly
@@ -65,11 +65,6 @@ def C5959810_ForceRegion_ForceRegionCombinesForces():
import os
import sys
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
@@ -167,7 +162,7 @@ def C5959810_ForceRegion_ForceRegionCombinesForces():
helper.init_idle()
# 1) Load Level
helper.open_level("physics", "C5959810_ForceRegion_ForceRegionCombinesForces")
helper.open_level("physics", "ForceRegion_MultipleForcesInSameComponentCombineForces")
# 2) Enter Game Mode
helper.enter_game_mode(Tests.enter_game_mode)
@@ -234,8 +229,5 @@ def C5959810_ForceRegion_ForceRegionCombinesForces():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C5959810_ForceRegion_ForceRegionCombinesForces)
Report.start_test(ForceRegion_MultipleForcesInSameComponentCombineForces)
@@ -24,7 +24,7 @@ class Tests:
# fmt: on
def C15845879_ForceRegion_HighLinearDampingForce():
def ForceRegion_NoQuiverOnHighLinearDampingForce():
"""
Summary: Check that linear damping with high values do not make the object to quiver
@@ -56,11 +56,6 @@ def C15845879_ForceRegion_HighLinearDampingForce():
"""
import os
import sys
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
@@ -131,7 +126,7 @@ def C15845879_ForceRegion_HighLinearDampingForce():
# Main Script
helper.init_idle()
# 1) Open Level
helper.open_level("Physics", "C15845879_ForceRegion_HighLinearDampingForce")
helper.open_level("Physics", "ForceRegion_NoQuiverOnHighLinearDampingForce")
# 2) Enter Game Mode
helper.enter_game_mode(Tests.enter_game_mode)
@@ -169,8 +164,5 @@ def C15845879_ForceRegion_HighLinearDampingForce():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C15845879_ForceRegion_HighLinearDampingForce)
Report.start_test(ForceRegion_NoQuiverOnHighLinearDampingForce)
@@ -29,7 +29,7 @@ class Tests():
# fmt: on
def C6090547_ForceRegion_ParentChildForceRegions():
def ForceRegion_ParentChildForcesCombineForces():
"""
Summary:
Runs an automated test to ensure that force regions in parent and child entities work together.
@@ -72,11 +72,6 @@ def C6090547_ForceRegion_ParentChildForceRegions():
import os
import sys
import ImportPathHelper as imports
imports.init()
import azlmbr.legacy.general as general
import azlmbr.bus
import azlmbr.math as lymath
@@ -94,7 +89,7 @@ def C6090547_ForceRegion_ParentChildForceRegions():
helper.init_idle()
# 1) Open level
helper.open_level("Physics", "C6090547_ForceRegion_ParentChildForceRegions")
helper.open_level("Physics", "ForceRegion_ParentChildForcesCombineForces")
# 2) Enter game mode
helper.enter_game_mode(Tests.enter_game_mode)
@@ -199,8 +194,5 @@ def C6090547_ForceRegion_ParentChildForceRegions():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C6090547_ForceRegion_ParentChildForceRegions)
Report.start_test(ForceRegion_ParentChildForcesCombineForces)
@@ -27,7 +27,7 @@ class Tests():
# fmt: on
def C5932044_ForceRegion_PointForceOnRigidBody():
def ForceRegion_PointForceOnRigidBodies():
"""
Summary:
Runs an automated test to ensure that that a force region exerts point force on rigid bodies
@@ -65,11 +65,6 @@ def C5932044_ForceRegion_PointForceOnRigidBody():
import os
import sys
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
@@ -88,7 +83,7 @@ def C5932044_ForceRegion_PointForceOnRigidBody():
helper.init_idle()
# 1) Open level
helper.open_level("Physics", "C5932044_PhysX_ForceRegion_PointForceOnRigidBodies")
helper.open_level("Physics", "ForceRegion_PointForceOnRigidBodies")
# 2) Enter game mode
helper.enter_game_mode(Tests.enter_game_mode)
@@ -189,8 +184,5 @@ def C5932044_ForceRegion_PointForceOnRigidBody():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C5932044_ForceRegion_PointForceOnRigidBody)
Report.start_test(ForceRegion_PointForceOnRigidBodies)
@@ -88,7 +88,7 @@ class Tests:
else:
return None
def C5959808_ForceRegion_PositionOffset():
def ForceRegion_PositionOffset():
"""
Summary:
Force Region positional offset is tested for each of the 3 axises (X, Y, and Z). Each axis's test has one
@@ -124,11 +124,6 @@ def C5959808_ForceRegion_PositionOffset():
import os
import sys
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
@@ -368,7 +363,7 @@ def C5959808_ForceRegion_PositionOffset():
# 1) Open level
helper.init_idle()
helper.open_level("Physics", "C5959808_ForceRegion_PositionOffset")
helper.open_level("Physics", "ForceRegion_PositionOffset")
helper.enter_game_mode(Tests.enter_game_mode)
# 2) Variable set up
@@ -405,8 +400,5 @@ def C5959808_ForceRegion_PositionOffset():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C5959808_ForceRegion_PositionOffset)
Report.start_test(ForceRegion_PositionOffset)
@@ -25,7 +25,7 @@ class Tests():
# fmt: on
def C5959761_ForceRegion_PhysAssetExertsPointForce():
def ForceRegion_PxMeshShapedForce():
"""
Summary:
Runs an automated test to ensure that PhysX force regions with physics assets exert point force on rigid bodies
@@ -61,12 +61,6 @@ def C5959761_ForceRegion_PhysAssetExertsPointForce():
import os
import sys
import ImportPathHelper as imports
imports.init()
import azlmbr
import azlmbr.legacy.general as general
import azlmbr.bus as bus
@@ -91,7 +85,7 @@ def C5959761_ForceRegion_PhysAssetExertsPointForce():
helper.init_idle()
# 1) Open level
helper.open_level("Physics", "C5959761_ForceRegion_ExertsPointForce_Sedan")
helper.open_level("Physics", "ForceRegion_PxMeshShapedForce")
# 2) Enter game mode
helper.enter_game_mode(Tests.enter_game_mode)
@@ -140,8 +134,5 @@ def C5959761_ForceRegion_PhysAssetExertsPointForce():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C5959761_ForceRegion_PhysAssetExertsPointForce)
Report.start_test(ForceRegion_PxMeshShapedForce)
@@ -89,7 +89,7 @@ class Tests:
return None
def C5959809_ForceRegion_RotationalOffset():
def ForceRegion_RotationalOffset():
"""
Summary:
Force Region rotational offset is tested for each of the 3 axises (X, Y, and Z). Each axis's test has one
@@ -125,11 +125,6 @@ def C5959809_ForceRegion_RotationalOffset():
import os
import sys
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
@@ -372,7 +367,7 @@ def C5959809_ForceRegion_RotationalOffset():
# 1) Open level
helper.init_idle()
helper.open_level("Physics", "C5959809_ForceRegion_RotationalOffset")
helper.open_level("Physics", "ForceRegion_RotationalOffset")
helper.enter_game_mode(Tests.enter_game_mode)
# 2) Variable set up
@@ -405,8 +400,5 @@ def C5959809_ForceRegion_RotationalOffset():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C5959809_ForceRegion_RotationalOffset)
Report.start_test(ForceRegion_RotationalOffset)
@@ -26,7 +26,7 @@ class Tests:
# fmt: on
def C5932043_ForceRegion_SimpleDragOnRigidBodies():
def ForceRegion_SimpleDragForceOnRigidBodies():
# This run() function will open a a level and validate that the force region slows down a spheres fall.
# It does this by:
# 1) Opens level with sphere above a force region
@@ -42,9 +42,7 @@ def C5932043_ForceRegion_SimpleDragOnRigidBodies():
# Setup path
import os, sys
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
@@ -66,7 +64,7 @@ def C5932043_ForceRegion_SimpleDragOnRigidBodies():
helper.init_idle()
# 1) Open level
helper.open_level("Physics", "C5932043_ForceRegion_SimpleDragOnRigidBody")
helper.open_level("Physics", "ForceRegion_SimpleDragForceOnRigidBodies")
# 2) Enter game mode
helper.enter_game_mode(Tests.enter_game_mode)
@@ -139,8 +137,5 @@ def C5932043_ForceRegion_SimpleDragOnRigidBodies():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C5932043_ForceRegion_SimpleDragOnRigidBodies)
Report.start_test(ForceRegion_SimpleDragForceOnRigidBodies)
@@ -22,7 +22,7 @@ class Tests():
# fmt: on
def C6090546_ForceRegion_SliceFileInstantiates():
def ForceRegion_SliceFileInstantiates():
"""
Summary:
@@ -63,11 +63,6 @@ def C6090546_ForceRegion_SliceFileInstantiates():
import os
import sys
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
@@ -100,7 +95,7 @@ def C6090546_ForceRegion_SliceFileInstantiates():
helper.init_idle()
# 1) Open level
helper.open_level("Physics", "C6090546_ForceRegion_SliceFileInstantiates")
helper.open_level("Physics", "ForceRegion_SliceFileInstantiates")
# 2) Enter game mode
helper.enter_game_mode(Tests.enter_game_mode)
@@ -138,8 +133,5 @@ def C6090546_ForceRegion_SliceFileInstantiates():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C6090546_ForceRegion_SliceFileInstantiates)
Report.start_test(ForceRegion_SliceFileInstantiates)
@@ -21,7 +21,7 @@ class Tests():
# fmt: on
def C12905527_ForceRegion_MagnitudeDeviation():
def ForceRegion_SmallMagnitudeDeviationOnLargeForces():
"""
Summary:
Runs an automated test to ensure that the calculated net force magnitude is close to the configured value
@@ -54,12 +54,6 @@ def C12905527_ForceRegion_MagnitudeDeviation():
"""
import os
import sys
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
@@ -99,7 +93,7 @@ def C12905527_ForceRegion_MagnitudeDeviation():
helper.init_idle()
# 1) Open level
Report.info(general.get_current_level_name())
helper.open_level("Physics", "C12905527_ForceRegion_MagnitudeDeviation")
helper.open_level("Physics", "ForceRegion_SmallMagnitudeDeviationOnLargeForces")
# 2) Enter game mode
helper.enter_game_mode(Tests.enter_game_mode)
@@ -144,8 +138,5 @@ def C12905527_ForceRegion_MagnitudeDeviation():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C12905527_ForceRegion_MagnitudeDeviation)
Report.start_test(ForceRegion_SmallMagnitudeDeviationOnLargeForces)
@@ -27,7 +27,7 @@ class Tests:
# fmt: on
def C5959759_RigidBody_ForceRegionSpherePointForce():
def ForceRegion_SphereShapedForce():
"""
Level Setup
The level consists of a sherical force region with a point force of 1000.
@@ -38,11 +38,6 @@ def C5959759_RigidBody_ForceRegionSpherePointForce():
"""
import os
import sys
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
@@ -55,7 +50,7 @@ def C5959759_RigidBody_ForceRegionSpherePointForce():
# 1) Open level and enter game mode
helper.init_idle()
helper.open_level("Physics", "C5959759_RigidBody_ForceRegionSpherePointForce")
helper.open_level("Physics", "ForceRegion_SphereShapedForce")
helper.enter_game_mode(Tests.enter_game_mode)
# 2) Retrieve entities
@@ -150,8 +145,5 @@ def C5959759_RigidBody_ForceRegionSpherePointForce():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C5959759_RigidBody_ForceRegionSpherePointForce)
Report.start_test(ForceRegion_SphereShapedForce)
@@ -30,7 +30,7 @@ class Tests():
# fmt: on
def C5932045_ForceRegion_Spline():
def ForceRegion_SplineForceOnRigidBodies():
"""
Summary:
Runs an automated test to ensure that a PhysX force region exerts spline follow force on rigid bodies
@@ -70,11 +70,6 @@ def C5932045_ForceRegion_Spline():
"""
import os
import sys
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
@@ -122,7 +117,7 @@ def C5932045_ForceRegion_Spline():
helper.init_idle()
# 1) Open level
helper.open_level("Physics", "C5932045_ForceRegion_Spline")
helper.open_level("Physics", "ForceRegion_SplineForceOnRigidBodies")
# 2) Enter game mode
helper.enter_game_mode(Tests.enter_game_mode)
@@ -162,8 +157,5 @@ def C5932045_ForceRegion_Spline():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C5932045_ForceRegion_Spline)
Report.start_test(ForceRegion_SplineForceOnRigidBodies)
@@ -29,7 +29,7 @@ class Tests():
# fmt: on
def C12868580_ForceRegion_SplineModifiedTransform():
def ForceRegion_SplineRegionWithModifiedTransform():
"""
Summary:
Runs an automated test to ensure that a PhysX force region correctly exerts spline follow force on rigid bodies when
@@ -73,12 +73,6 @@ def C12868580_ForceRegion_SplineModifiedTransform():
"""
import os
import sys
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
@@ -131,7 +125,7 @@ def C12868580_ForceRegion_SplineModifiedTransform():
helper.init_idle()
# 1) Open level
helper.open_level("Physics", "C12868580_ForceRegion_SplineModifiedTransform")
helper.open_level("Physics", "ForceRegion_SplineRegionWithModifiedTransform")
# 2) Enter game mode
helper.enter_game_mode(Tests.enter_game_mode)
@@ -168,8 +162,5 @@ def C12868580_ForceRegion_SplineModifiedTransform():
if __name__ == "__main__":
import ImportPathHelper as imports
imports.init()
from editor_python_test_tools.utils import Report
Report.start_test(C12868580_ForceRegion_SplineModifiedTransform)
Report.start_test(ForceRegion_SplineRegionWithModifiedTransform)

Some files were not shown because too many files have changed in this diff Show More