add some extra general.idle_wait() and general.idle_wait_frames() calls to increase test stability to stop race condition / intermittent failure in test
This commit is contained in:
+15
-8
@@ -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,
|
||||||
|
|||||||
@@ -163,7 +163,7 @@ class TestAtomEditorComponentsMain(object):
|
|||||||
]
|
]
|
||||||
|
|
||||||
unexpected_lines = [
|
unexpected_lines = [
|
||||||
"failed to open",
|
"Trace::Error",
|
||||||
"Traceback (most recent call last):",
|
"Traceback (most recent call last):",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user