3
0

hydra_Atom_LevelLoadTest_Sandbox.py 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  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. def Atom_LevelLoadTest():
  7. """
  8. Summary:
  9. Loads all graphics levels within the AutomatedTesting project in editor. For each level this script will verify that
  10. the level loads, and can enter/exit gameplay without crashing the editor.
  11. Test setup:
  12. - Store all available levels in a list.
  13. - Set up a for loop to run all checks for each level.
  14. Expected Behavior:
  15. Test verifies that each level loads, enters/exits game mode, and reports success for all test actions.
  16. Test Steps for each level:
  17. 1) Create tuple with level load success and failure messages
  18. 2) Open the level using the python test tools command
  19. 3) Verify level is loaded using a separate command, and report success/failure
  20. 4) Enter gameplay and report result using a tuple
  21. 5) Exit Gameplay and report result using a tuple
  22. 6) Look for errors or asserts.
  23. :return: None
  24. """
  25. SANDBOX_LEVEL_LIST = ["Sponza"]
  26. import azlmbr.legacy.general as general
  27. from editor_python_test_tools.utils import Report, Tracer, TestHelper
  28. with Tracer() as error_tracer:
  29. for level in SANDBOX_LEVEL_LIST:
  30. # 1. Create tuple with level load success and failure messages
  31. level_check_tuple = (f"loaded {level}", f"failed to load {level}")
  32. # 2. Open the level using the python test tools command
  33. TestHelper.init_idle()
  34. TestHelper.open_level("Graphics", level)
  35. # 3. Verify level is loaded using a separate command, and report success/failure
  36. Report.result(level_check_tuple, level == general.get_current_level_name())
  37. # 4. Enter gameplay and report result using a tuple
  38. enter_game_mode_tuple = (f"{level} entered gameplay successfully ", f"{level} failed to enter gameplay")
  39. TestHelper.enter_game_mode(enter_game_mode_tuple)
  40. general.idle_wait_frames(1)
  41. # 5. Exit gameplay and report result using a tuple
  42. exit_game_mode_tuple = (f"{level} exited gameplay successfully ", f"{level} failed to exit gameplay")
  43. TestHelper.exit_game_mode(exit_game_mode_tuple)
  44. # 6. Look for errors or asserts.
  45. TestHelper.wait_for_condition(lambda: error_tracer.has_errors or error_tracer.has_asserts, 1.0)
  46. for error_info in error_tracer.errors:
  47. Report.info(f"Error: {error_info.filename} {error_info.function} | {error_info.message}")
  48. for assert_info in error_tracer.asserts:
  49. Report.info(f"Assert: {assert_info.filename} {assert_info.function} | {assert_info.message}")
  50. if __name__ == "__main__":
  51. from editor_python_test_tools.utils import Report
  52. Report.start_test(Atom_LevelLoadTest)