ScriptCanvasTools_Toggle_OpenCloseSuccess.py 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. """
  2. Copyright (c) Contributors to the Open 3D Engine Project.
  3. For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. SPDX-License-Identifier: Apache-2.0 OR MIT
  5. """
  6. # fmt: off
  7. class Tests():
  8. node_palette_opened = ("NodePalette is opened successfully", "Failed to open NodePalette")
  9. node_inspector_opened = ("NodeInspector is opened successfully", "Failed to open NodeInspector")
  10. bookmark_opened = ("Bookmarks is opened successfully", "Failed to open Bookmarks")
  11. variable_manager_opened = ("VariableManager is opened successfully", "Failed to open VariableManager")
  12. node_palette_closed_by_start = ("NodePalette is closed successfully", "Failed to close NodePalette")
  13. node_inspector_closed_by_start = ("NodeInspector is closed successfully", "Failed to close NodeInspector")
  14. bookmark_closed_by_start = ("Bookmarks is closed successfully", "Failed to close Bookmarks")
  15. variable_manager_closed_by_start = ("VariableManager is closed successfully", "Failed to close VariableManager")
  16. node_palette_closed_by_end = ("NodePalette is closed successfully", "Failed to close NodePalette")
  17. node_inspector_closed_by_end = ("NodeInspector is closed successfully", "Failed to close NodeInspector")
  18. bookmark_closed_by_end = ("Bookmarks is closed successfully", "Failed to close Bookmarks")
  19. variable_manager_closed_by_end = ("VariableManager is closed successfully", "Failed to close VariableManager")
  20. # fmt: on
  21. def ScriptCanvasTools_Toggle_OpenCloseSuccess():
  22. """
  23. Summary:
  24. Toggle Node Palette, Node Inspector, Bookmarks and Variable Manager in Script Canvas.
  25. Make sure each pane opens and closes successfully.
  26. Expected Behavior:
  27. Each pane opens and closes successfully.
  28. Test Steps:
  29. 1) Open Script Canvas window (Tools > Script Canvas)
  30. 2) Make sure Node Palette, Node Inspector, Bookmarks and Variable Manager panes are closed in Script Canvas window
  31. 3) Open Node Palette, Node Inspector, Bookmarks and Variable Manager in Script Canvas window
  32. 4) Close Node Palette, Node Inspector, Bookmarks and Variable Manager in Script Canvas window
  33. 5) Restore default layout
  34. 6) Close Script Canvas window
  35. Note:
  36. - This test file must be called from the Open 3D Engine Editor command terminal
  37. - Any passed and failed tests are written to the Editor.log file.
  38. Parsing the file or running a log_monitor are required to observe the test results.
  39. :return: None
  40. """
  41. from PySide2 import QtWidgets
  42. from utils import Report
  43. from utils import TestHelper as helper
  44. import pyside_utils
  45. # Open 3D Engine imports
  46. import azlmbr.legacy.general as general
  47. def click_menu_option(window, option_text):
  48. action = pyside_utils.find_child_by_pattern(window, {"text": option_text, "type": QtWidgets.QAction})
  49. action.trigger()
  50. def find_pane(window, pane_name):
  51. return window.findChild(QtWidgets.QDockWidget, pane_name)
  52. def close_tool(window, pane_widget, test_tuple):
  53. pane = find_pane(window, pane_widget)
  54. pane.close()
  55. Report.result(test_tuple, not pane.isVisible())
  56. def open_tool(window, pane_widget, tool, test_tuple):
  57. pane = find_pane(window, pane_widget)
  58. if not pane.isVisible():
  59. click_menu_option(window, tool)
  60. pane = find_pane(window, pane_widget)
  61. Report.result(test_tuple, pane.isVisible())
  62. # Test starts here
  63. general.idle_enable(True)
  64. # 1) Open Script Canvas window (Tools > Script Canvas)
  65. general.open_pane("Script Canvas")
  66. helper.wait_for_condition(lambda: general.is_pane_visible("Script Canvas"), 5.0)
  67. # 2) Make sure Node Palette, Node Inspector, Bookmarks and Variable Manager panes are closed in Script Canvas window
  68. editor_window = pyside_utils.get_editor_main_window()
  69. sc = editor_window.findChild(QtWidgets.QDockWidget, "Script Canvas")
  70. close_tool(sc, "NodePalette", Tests.node_palette_closed_by_start)
  71. close_tool(sc, "NodeInspector", Tests.node_inspector_closed_by_start)
  72. close_tool(sc, "BookmarkDockWidget", Tests.bookmark_closed_by_start)
  73. close_tool(sc, "VariableManager", Tests.variable_manager_closed_by_start)
  74. # 3) Open Node Palette, Node Inspector, Bookmarks and Variable Manager in Script Canvas window
  75. open_tool(sc, "NodePalette", "Node Palette", Tests.node_palette_opened)
  76. open_tool(sc, "NodeInspector", "Node Inspector", Tests.node_inspector_opened)
  77. open_tool(sc, "BookmarkDockWidget", "Bookmarks", Tests.bookmark_opened)
  78. open_tool(sc, "VariableManager", "Variable Manager", Tests.variable_manager_opened)
  79. # 4) Close Node Palette, Node Inspector, Bookmarks and Variable Manager in Script Canvas window
  80. close_tool(sc, "NodePalette", Tests.node_palette_closed_by_end)
  81. close_tool(sc, "NodeInspector", Tests.node_inspector_closed_by_end)
  82. close_tool(sc, "BookmarkDockWidget", Tests.bookmark_closed_by_end)
  83. close_tool(sc, "VariableManager", Tests.variable_manager_closed_by_end)
  84. # 5) Restore default layout
  85. # Need this step to restore to default in case of test failure
  86. click_menu_option(sc, "Restore Default Layout")
  87. # 6) Close Script Canvas window
  88. sc.close()
  89. if __name__ == "__main__":
  90. import ImportPathHelper as imports
  91. imports.init()
  92. from utils import Report
  93. Report.start_test(ScriptCanvasTools_Toggle_OpenCloseSuccess)