123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- """
- 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
- """
- class Tests():
- node_exists = ("Node found in Node Palette", "Node not found in Node Palette")
- method_removed = ("Method removed from scriptevent file", "Method not removed from scriptevent file")
- def ScriptEvent_AddRemoveMethod_UpdatesInSC():
- """
- Summary:
- Method can be added/removed to an existing .scriptevents file
- Expected Behavior:
- The Method is correctly added/removed to the asset, and Script Canvas nodes are updated accordingly.
- Test Steps:
- 1) Initialize Qt Test objects and open Asset Editor
- 2) Create new Script Event file and add two methods
- 3) Save the script event file to disk
- 4) Open script canvas editor and search the node palette for our new method
- 5) Delete one of the methods from script event
- 6) Search the node palette for the deleted method. Verify it's gone
- 7) close script canvas editor and asset editor
- Note:
- - This test file must be called from the Open 3D Engine Editor command terminal
- - Any passed and failed tests are written to the Editor.log file.
- Parsing the file or running a log_monitor are required to observe the test results.
- """
- # Preconditions
- import os
- import azlmbr.paths as paths
- from editor_python_test_tools.utils import Report
- import azlmbr.legacy.general as general
- from editor_python_test_tools.QtPy.QtPyO3DEEditor import QtPyO3DEEditor
- from consts.asset_editor import (SCRIPT_EVENT_UI, NODE_TEST_METHOD)
- general.idle_enable(True)
- # 1) Get a handle on our O3DE QtPy objects then initialize the Asset Editor object
- qtpy_o3de_editor = QtPyO3DEEditor()
- # Close and reopen Asset Editor to ensure we don't have any existing assets open
- qtpy_o3de_editor.close_asset_editor()
- qtpy_asset_editor = qtpy_o3de_editor.open_asset_editor()
- # 2) Create new Script Event file and add two methods
- qtpy_asset_editor.click_menu_bar_option(SCRIPT_EVENT_UI)
- qtpy_asset_editor.add_method_to_script_event(f"{NODE_TEST_METHOD}_0")
- qtpy_asset_editor.add_method_to_script_event(f"{NODE_TEST_METHOD}_1")
- # 3) Save the script event file to disk
- file_path = os.path.join(paths.projectroot, "TestAssets", "test_file.scriptevents")
- qtpy_asset_editor.save_script_event_file(file_path)
- # 4) Open script canvas editor and search the node palette for our new method
- qtpy_o3de_editor.open_script_canvas()
- node_exists = qtpy_o3de_editor.sc_editor.node_palette.search_for_node(f"{NODE_TEST_METHOD}_0") is not None
- Report.critical_result(Tests.node_exists, node_exists)
- # 5) Delete one of the methods from script event
- qtpy_asset_editor.delete_method_from_script_events()
- qtpy_asset_editor.save_script_event_file(file_path)
- # 6) Search the node palette for the deleted method. Verify it's gone
- node_does_not_exist = qtpy_o3de_editor.sc_editor.node_palette.search_for_node(f"{NODE_TEST_METHOD}_0") is None
- Report.critical_result(Tests.method_removed, node_does_not_exist)
- # 7) close script canvas editor and asset editor
- qtpy_o3de_editor.close_script_canvas()
- qtpy_o3de_editor.close_asset_editor()
- if __name__ == "__main__":
- import ImportPathHelper as imports
- imports.init()
- from editor_python_test_tools.utils import Report
- Report.start_test(ScriptEvent_AddRemoveMethod_UpdatesInSC)
|