1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- """
- 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 Menus_EditMenuOptions_Work():
- """
- Summary:
- Interact with Edit Menu options and verify if all the options are working.
- Expected Behavior:
- The Edit menu functions normally.
- Test Steps:
- 1) Open an existing level
- 2) Interact with Edit Menu options
- Note:
- - This test file must be called from the O3DE 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.
- :return: None
- """
- import azlmbr.legacy.general as general
- import editor_python_test_tools.hydra_editor_utils as hydra
- import pyside_utils
- from editor_python_test_tools.utils import Report
- from editor_python_test_tools.editor_entity_utils import EditorEntity
- edit_menu_options = [
- ("Undo",),
- ("Redo",),
- ("Duplicate",),
- ("Delete",),
- ("Select All",),
- ("Invert Selection",),
- ("Toggle Pivot Location",),
- ("Reset Entity Transform",),
- ("Reset Manipulator",),
- ("Hide Selection",),
- ("Show All",),
- ("Lock Selection",),
- ("Unlock All Entities",),
- ("Modify", "Snap", "Angle snapping"),
- ("Modify", "Snap", "Grid snapping"),
- ("Modify", "Transform Mode", "Move"),
- ("Modify", "Transform Mode", "Rotate"),
- ("Modify", "Transform Mode", "Scale"),
- ("Editor Settings", "Global Preferences"),
- ("Editor Settings", "Editor Settings Manager"),
- # The following menu options are temporarily disabled due to https://github.com/o3de/o3de/issues/6746
- #("Editor Settings", "Keyboard Customization", "Export Keyboard Settings"),
- #("Editor Settings", "Keyboard Customization", "Import Keyboard Settings"),
- ]
- # 1) Open an existing simple level
- hydra.open_base_level()
- # The action manager doesn't register the menus until the next system tick, so need to wait
- # until the menu bar has been populated
- general.idle_enable(True)
- general.idle_wait_frames(1)
-
- # 2) Some menu items will not display when no entity is selected (For example, Delete or Duplicate)
- # We create an entity as it's the quickest way to have a selection (new entities are selected by default).
- EditorEntity.create_editor_entity()
- general.idle_wait_frames(1)
- # 3) Interact with Edit Menu options
- editor_window = pyside_utils.get_editor_main_window()
- for option in edit_menu_options:
- try:
- action = pyside_utils.get_action_for_menu_path(editor_window, "Edit", *option)
- Report.info(f"Triggering {action.iconText()}")
- action.trigger()
- action_triggered = True
- except Exception as e:
- action_triggered = False
- print(e)
- menu_action_triggered = (
- f"{action.iconText()} action triggered successfully",
- f"Failed to trigger {action.iconText()} action"
- )
- Report.result(menu_action_triggered, action_triggered)
- if __name__ == "__main__":
- from editor_python_test_tools.utils import Report
- Report.start_test(Menus_EditMenuOptions_Work)
|