ScriptEvents_Default_SendReceiveSuccessfully.py 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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. enter_game_mode = ("Successfully entered game mode", "Failed to enter game mode")
  9. lines_found = ("Successfully found expected message", "Failed to find expected message")
  10. exit_game_mode = ("Successfully exited game mode", "Failed to exit game mode")
  11. # fmt: on
  12. def ScriptEvents_Default_SendReceiveSuccessfully():
  13. """
  14. Summary:
  15. An entity exists in the level that contains a Script Canvas component. In the graph is both a Send Event
  16. and a Receive Event.
  17. Expected Behavior:
  18. After entering game mode the graph on the entity should print an expected message to the console
  19. Test Steps:
  20. 1) Create test level
  21. 2) Create test entity
  22. 3) Enter Game Mode
  23. 4) Read for line
  24. 5) Exit Game Mode
  25. Note:
  26. - Any passed and failed tests are written to the Editor.log file.
  27. Parsing the file or running a log_monitor are required to observe the test results.
  28. :return: None
  29. """
  30. import os
  31. from editor_python_test_tools.utils import Report, Tracer
  32. from editor_python_test_tools.utils import TestHelper as TestHelper
  33. import azlmbr.paths as paths
  34. import azlmbr.math as math
  35. import azlmbr.legacy.general as general
  36. import scripting_utils.scripting_tools as scripting_tools
  37. from editor_python_test_tools.editor_entity_utils import EditorEntity
  38. from editor_python_test_tools.editor_component.editor_script_canvas import ScriptCanvasComponent
  39. from scripting_utils.scripting_constants import (WAIT_TIME_3)
  40. ENTITY_NAME = "TestEntity"
  41. EXPECTED_LINES = ["T92567320: Message Received"]
  42. SC_ASSET_PATH = os.path.join(paths.projectroot, "ScriptCanvas", "T92567320.scriptcanvas")
  43. # Preconditions
  44. general.idle_enable(True)
  45. # 1) Create temp level
  46. TestHelper.open_level("", "Base")
  47. # 2) Create test entity
  48. position = math.Vector3(512.0, 512.0, 32.0)
  49. editor_entity = EditorEntity.create_editor_entity_at(position, ENTITY_NAME)
  50. scriptcanvas_component = ScriptCanvasComponent(editor_entity)
  51. scriptcanvas_component.set_component_graph_file_from_path(SC_ASSET_PATH)
  52. with Tracer() as section_tracer:
  53. # 3) Enter Game Mode
  54. TestHelper.enter_game_mode(Tests.enter_game_mode)
  55. # 4) Read for line
  56. lines_located = TestHelper.wait_for_condition(
  57. lambda: scripting_tools.located_expected_tracer_lines(section_tracer, EXPECTED_LINES), WAIT_TIME_3)
  58. Report.result(Tests.lines_found, lines_located)
  59. # 5) Exit Game Mode
  60. TestHelper.exit_game_mode(Tests.exit_game_mode)
  61. if __name__ == "__main__":
  62. import ImportPathHelper as imports
  63. imports.init()
  64. from utils import Report
  65. Report.start_test(ScriptEvents_Default_SendReceiveSuccessfully)