Files
o3de/AutomatedTesting/Gem/PythonTests/EditorPythonBindings/ObjectManagerCommands_test_case.py
T
chiyenteng 7c6c01d5a1 Convert automated tests related to content and unused levels (#7416)
* Convert automated tests related to content/WaterSample level/Physics's Base level

Signed-off-by: chiyenteng <82238204+chiyenteng@users.noreply.github.com>

* Fix nits

Signed-off-by: chiyenteng <82238204+chiyenteng@users.noreply.github.com>

* Add missing .prefab level file

Signed-off-by: chiyenteng <82238204+chiyenteng@users.noreply.github.com>

* Fix nits

Signed-off-by: chiyenteng <82238204+chiyenteng@users.noreply.github.com>

* Convert Blast tests

Signed-off-by: chiyenteng <82238204+chiyenteng@users.noreply.github.com>

* Convert scripting tests

Signed-off-by: chiyenteng <82238204+chiyenteng@users.noreply.github.com>

* Remove useless comments

Signed-off-by: chiyenteng <82238204+chiyenteng@users.noreply.github.com>

* Revert Collider_AddColliderComponent change until prefab error message bug fixed

Signed-off-by: chiyenteng <82238204+chiyenteng@users.noreply.github.com>
2022-02-07 12:11:01 -08:00

116 lines
3.8 KiB
Python
Executable File

"""
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
"""
# Tests a portion of the Python API from ObjectManager.cpp while the Editor is running
import azlmbr.bus as bus
import azlmbr.editor as editor
import azlmbr.math
import azlmbr.legacy.general as general
def fetch_vector3_parts(vec3):
x = vec3.get_property('x')
y = vec3.get_property('y')
z = vec3.get_property('z')
return (x, y, z)
general.idle_enable(True)
# It needs a new test level in prefab format to make it testable again.
editor.EditorToolsApplicationRequestBus(bus.Broadcast, 'OpenLevelNoPrompt', 'Base')
if (editor.EditorToolsApplicationRequestBus(bus.Broadcast, 'GetCurrentLevelName') == 'Base'):
objs_list = general.get_all_objects()
if(len(objs_list) > 0):
print("get_all_objects works")
general.clear_selection()
general.select_object(objs_list[0])
selected_objs_list = general.get_names_of_selected_objects()
if(len(selected_objs_list) == 1):
print("get_names_of_selected_objects works")
select = [objs_list[1], objs_list[2]]
general.select_objects(select)
selected_objs_list = general.get_names_of_selected_objects()
if(len(selected_objs_list) == 3):
print("select_objects works")
sel_position = general.get_selection_center()
sel_aabb = general.get_selection_aabb()
centerX = sel_position.get_property("x")
cornerX = sel_aabb.get_property("min").get_property("x")
if not(centerX == cornerX):
print("sel_position and sel_aabb both work")
unselect = [objs_list[0], objs_list[2]]
general.unselect_objects(unselect)
if(general.get_num_selected() == 1):
print("get_num_selected and unselect_objects both work")
general.clear_selection()
if(general.get_num_selected() == 0):
print("clear_selection works")
position = general.get_position(objs_list[1])
px1, py1, pz1 = fetch_vector3_parts(position)
general.set_position(objs_list[1], px1 + 10, py1 - 4, pz1 + 3)
new_position = general.get_position(objs_list[1])
px2, py2, pz2 = fetch_vector3_parts(new_position)
if(px2 > px1) and (py2 < py1) and (pz2 > pz1):
print("position setter/getter works")
rotation = general.get_rotation(objs_list[1])
rx1, ry1, rz1 = fetch_vector3_parts(rotation)
general.set_rotation(objs_list[1], rx1 + 10, ry1 - 4, rz1 + 3)
new_rotation = general.get_rotation(objs_list[1])
rx2, ry2, rz2 = fetch_vector3_parts(new_rotation)
if(rx2 > rx1) and (ry2 < ry1) and (rz2 > rz1):
print("rotation setter/getter works")
scale = general.get_scale(objs_list[1])
sx1, sy1, sz1 = fetch_vector3_parts(scale)
general.set_scale(objs_list[1], sx1 + 10, sy1 + 4, sz1 + 3)
new_scale = general.get_scale(objs_list[1])
sx2, sy2, sz2 = fetch_vector3_parts(new_scale)
if(sx2 > sx1) and (sy2 > sy1) and (sz2 > sz1):
print("scale setter/getter works")
general.select_object(objs_list[2])
general.delete_selected()
new_objs_list = general.get_all_objects()
if(len(new_objs_list) < len(objs_list)):
print("delete_selected works")
general.delete_object(objs_list[0])
new_objs_list = general.get_all_objects()
if(len(new_objs_list) < len(objs_list)):
print("delete_object works")
general.rename_object(objs_list[1], "some_test_name")
new_objs_list = general.get_all_objects()
for elem in new_objs_list:
if(elem == "some_test_name"):
print("rename_object works")
editor.EditorToolsApplicationRequestBus(bus.Broadcast, 'ExitNoPrompt')