@ -63,13 +63,13 @@ def run():
# undo component addition
# undo component addition
general . undo ( )
general . undo ( )
TestHelper . wait_for_condition ( lambda : not hydra . has_components ( new_entity . id , [ component_name ] ) , 2.0 )
TestHelper . wait_for_condition ( lambda : not hydra . has_components ( new_entity . id , [ component_name ] ) , 1.5 )
general . log ( f " { component_name } _test: Component removed after UNDO: "
general . log ( f " { component_name } _test: Component removed after UNDO: "
f " { not hydra . has_components ( new_entity . id , [ component_name ] ) } " )
f " { not hydra . has_components ( new_entity . id , [ component_name ] ) } " )
# redo component addition
# redo component addition
general . redo ( )
general . redo ( )
TestHelper . wait_for_condition ( lambda : hydra . has_components ( new_entity . id , [ component_name ] ) , 2.0 )
TestHelper . wait_for_condition ( lambda : hydra . has_components ( new_entity . id , [ component_name ] ) , 1.5 )
general . log ( f " { component_name } _test: Component added after REDO: "
general . log ( f " { component_name } _test: Component added after REDO: "
f " { hydra . has_components ( new_entity . id , [ component_name ] ) } " )
f " { hydra . has_components ( new_entity . id , [ component_name ] ) } " )
@ -77,10 +77,10 @@ def run():
def verify_enter_exit_game_mode ( component_name ) :
def verify_enter_exit_game_mode ( component_name ) :
general . enter_game_mode ( )
general . enter_game_mode ( )
TestHelper . wait_for_condition ( lambda : general . is_in_game_mode ( ) , 1. 0 )
TestHelper . wait_for_condition ( lambda : general . is_in_game_mode ( ) , 1. 5 )
general . log ( f " { component_name } _test: Entered game mode: { general . is_in_game_mode ( ) } " )
general . log ( f " { component_name } _test: Entered game mode: { general . is_in_game_mode ( ) } " )
general . exit_game_mode ( )
general . exit_game_mode ( )
TestHelper . wait_for_condition ( lambda : not general . is_in_game_mode ( ) , 1. 0 )
TestHelper . wait_for_condition ( lambda : not general . is_in_game_mode ( ) , 1. 5 )
general . log ( f " { component_name } _test: Exit game mode: { not general . is_in_game_mode ( ) } " )
general . log ( f " { component_name } _test: Exit game mode: { not general . is_in_game_mode ( ) } " )
def verify_hide_unhide_entity ( component_name , entity_obj ) :
def verify_hide_unhide_entity ( component_name , entity_obj ) :
@ -97,16 +97,16 @@ def run():
def verify_deletion_undo_redo ( component_name , entity_obj ) :
def verify_deletion_undo_redo ( component_name , entity_obj ) :
editor . ToolsApplicationRequestBus ( bus . Broadcast , " DeleteEntityById " , entity_obj . id )
editor . ToolsApplicationRequestBus ( bus . Broadcast , " DeleteEntityById " , entity_obj . id )
TestHelper . wait_for_condition ( lambda : not hydra . find_entity_by_name ( entity_obj . name ) , 1. 0 )
TestHelper . wait_for_condition ( lambda : not hydra . find_entity_by_name ( entity_obj . name ) , 1. 5 )
general . log ( f " { component_name } _test: Entity deleted: { not hydra . find_entity_by_name ( entity_obj . name ) } " )
general . log ( f " { component_name } _test: Entity deleted: { not hydra . find_entity_by_name ( entity_obj . name ) } " )
general . undo ( )
general . undo ( )
TestHelper . wait_for_condition ( lambda : hydra . find_entity_by_name ( entity_obj . name ) is not None , 1. 0 )
TestHelper . wait_for_condition ( lambda : hydra . find_entity_by_name ( entity_obj . name ) is not None , 1. 5 )
general . log ( f " { component_name } _test: UNDO entity deletion works: "
general . log ( f " { component_name } _test: UNDO entity deletion works: "
f " { hydra . find_entity_by_name ( entity_obj . name ) is not None } " )
f " { hydra . find_entity_by_name ( entity_obj . name ) is not None } " )
general . redo ( )
general . redo ( )
TestHelper . wait_for_condition ( lambda : not hydra . find_entity_by_name ( entity_obj . name ) , 1. 0 )
TestHelper . wait_for_condition ( lambda : not hydra . find_entity_by_name ( entity_obj . name ) , 1. 5 )
general . log ( f " { component_name } _test: REDO entity deletion works: "
general . log ( f " { component_name } _test: REDO entity deletion works: "
f " { not hydra . find_entity_by_name ( entity_obj . name ) } " )
f " { not hydra . find_entity_by_name ( entity_obj . name ) } " )
@ -120,7 +120,7 @@ def run():
f " { not is_component_enabled ( entity_obj . components [ 0 ] ) } " )
f " { not is_component_enabled ( entity_obj . components [ 0 ] ) } " )
for component in components_to_add :
for component in components_to_add :
entity_obj . add_component ( component )
entity_obj . add_component ( component )
TestHelper . wait_for_condition ( lambda : is_component_enabled ( entity_obj . components [ 0 ] ) , 1. 0 )
TestHelper . wait_for_condition ( lambda : is_component_enabled ( entity_obj . components [ 0 ] ) , 1. 5 )
general . log (
general . log (
f " { component_name } _test: Entity enabled after adding "
f " { component_name } _test: Entity enabled after adding "
f " required components: { is_component_enabled ( entity_obj . components [ 0 ] ) } "
f " required components: { is_component_enabled ( entity_obj . components [ 0 ] ) } "
@ -135,7 +135,9 @@ def run():
# Delete all existing entities initially
# Delete all existing entities initially
search_filter = azlmbr . entity . SearchFilter ( )
search_filter = azlmbr . entity . SearchFilter ( )
all_entities = entity . SearchBus ( azlmbr . bus . Broadcast , " SearchEntities " , search_filter )
all_entities = entity . SearchBus ( azlmbr . bus . Broadcast , " SearchEntities " , search_filter )
general . idle_wait_frames ( 1 )
editor . ToolsApplicationRequestBus ( bus . Broadcast , " DeleteEntities " , all_entities )
editor . ToolsApplicationRequestBus ( bus . Broadcast , " DeleteEntities " , all_entities )
general . idle_wait_frames ( 1 )
class ComponentTests :
class ComponentTests :
""" Test launcher for each component. """
""" Test launcher for each component. """
@ -147,9 +149,11 @@ def run():
def run_component_tests ( self ) :
def run_component_tests ( self ) :
# Run common and additional tests
# Run common and additional tests
entity_obj = create_entity_undo_redo_component_addition ( self . component_name )
entity_obj = create_entity_undo_redo_component_addition ( self . component_name )
general . idle_wait ( 0.5 )
# Enter/Exit game mode test
# Enter/Exit game mode test
verify_enter_exit_game_mode ( self . component_name )
verify_enter_exit_game_mode ( self . component_name )
general . idle_wait ( 0.5 )
# Any additional tests are executed here
# Any additional tests are executed here
for test in self . additional_tests :
for test in self . additional_tests :
@ -157,13 +161,16 @@ def run():
# Hide/Unhide entity test
# Hide/Unhide entity test
verify_hide_unhide_entity ( self . component_name , entity_obj )
verify_hide_unhide_entity ( self . component_name , entity_obj )
general . idle_wait ( 0.5 )
# Deletion/Undo/Redo test
# Deletion/Undo/Redo test
verify_deletion_undo_redo ( self . component_name , entity_obj )
verify_deletion_undo_redo ( self . component_name , entity_obj )
general . idle_wait ( 0.5 )
# DepthOfField Component
# DepthOfField Component
camera_entity = hydra . Entity ( " camera_entity " )
camera_entity = hydra . Entity ( " camera_entity " )
camera_entity . create_entity ( math . Vector3 ( 512.0 , 512.0 , 34.0 ) , [ " Camera " ] )
camera_entity . create_entity ( math . Vector3 ( 512.0 , 512.0 , 34.0 ) , [ " Camera " ] )
general . idle_wait ( 0.5 )
depth_of_field = " DepthOfField "
depth_of_field = " DepthOfField "
ComponentTests (
ComponentTests (
depth_of_field ,
depth_of_field ,