You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
o3de/AutomatedTesting/Gem/PythonTests/physics/character_controller/C14654881_CharacterControll...

93 lines
2.9 KiB
Python

"""
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
"""
# Test case ID : C14654881
# Test Case Title : Switching levels from a level containing a character controller component
# should not lead to a crash
# fmt: off
class Tests:
# level
level1_enter_game_mode = ("Entered game mode level 1", "Failed to enter game mode level 1")
level1_exit_game_mode = ("Exited game mode level 1", "Couldn't exit game mode level 1")
CharacterController_found = ("Character controller was found", "Character controller was not found")
level2_enter_game_mode = ("Entered game mode level 2", "Failed to enter game mode level 2")
level2_exit_game_mode = ("Exited game mode level 2", "Couldn't exit game mode level 2")
# fmt: on
def C14654881_CharacterController_SwitchLevels():
"""
Summary:
Runs an automated test to verify that switching levels from a level containing a character controller component
does not lead to a crash
Level Description:
There are 2 levels used in this test:
One contains an entity with a PhysX Character Controller component,
the other one is empty.
Expected Behavior:
It should enter and then exit game mode without any errors in both levels.
Test Steps:
1.1) Load the level with PhysX Character Controller
1.2) Enter game mode
1.3) Find the entity with PhysX Character Controller component
1.4) Exit game mode
2.1) Load the empty level
2.2) Enter game mode
2.3) Exit game mode
3) Close editor
"""
import os
import sys
from editor_python_test_tools.utils import Report
from editor_python_test_tools.utils import TestHelper as helper
import azlmbr.legacy.general as general
import azlmbr.bus
# Constants
WAIT_FOR_ERRORS = 3.0
helper.init_idle()
# 1.1) Load level 1 (with character controller)
helper.open_level("Physics", "C14654881_CharacterController_SwitchLevels")
# 1.2) Enter game mode
helper.enter_game_mode(Tests.level1_enter_game_mode)
# 1.3) Find and validate character controller entity
characterController_id = general.find_game_entity("CharacterController")
Report.critical_result(Tests.CharacterController_found, characterController_id.IsValid())
# 1.4) Exit Game mode
helper.exit_game_mode(Tests.level1_exit_game_mode)
# 2.1) Load level 2 (empty level)
helper.open_level("Physics", "C14654881_CharacterController_SwitchLevelsEmpty")
# 2.2) Enter game mode
helper.enter_game_mode(Tests.level2_enter_game_mode)
general.idle_wait(WAIT_FOR_ERRORS)
# 2.3) Exit Game mode
helper.exit_game_mode(Tests.level2_exit_game_mode)
if __name__ == "__main__":
from editor_python_test_tools.utils import Report
Report.start_test(C14654881_CharacterController_SwitchLevels)