Files
o3de/AutomatedTesting/Gem/PythonTests/Prefab/tests/delete_entity/DeleteEntity_UnderAnotherPrefab.py
T
srikappa-amzn 4dd9e94bc3 Add tests for deleting an entity from the level and from another prefab (#5839)
* Added tests for deleting entity under level and other prefabs

Signed-off-by: srikappa-amzn <82230713+srikappa-amzn@users.noreply.github.com>

* Added class comments and improved variable names

Signed-off-by: srikappa-amzn <82230713+srikappa-amzn@users.noreply.github.com>

* Called the reflect function of PrefabFocusHandler from PrefabSystemComponent

Signed-off-by: srikappa-amzn <82230713+srikappa-amzn@users.noreply.github.com>

* Added function comments and made an if statement to be one line

Signed-off-by: srikappa-amzn <82230713+srikappa-amzn@users.noreply.github.com>
2021-11-30 08:20:25 -08:00

53 lines
2.0 KiB
Python

"""
Copyright (c) Contributors to the Open 3D Engine Project.
For complete copyright and license terms please see the LICENSE at the root of this distribution.
SPDX-License-Identifier: Apache-2.0 OR MIT
"""
def DeleteEntity_UnderAnotherPrefab():
"""
Test description:
- Creates an entity.
- Creates a prefab out of the above entity.
- Focuses on the created prefab and destroys the entity within.
Checks that the entity is correctly destroyed.
"""
from editor_python_test_tools.editor_entity_utils import EditorEntity
from editor_python_test_tools.prefab_utils import Prefab
import Prefab.tests.PrefabTestUtils as prefab_test_utils
prefab_test_utils.open_base_tests_level()
PREFAB_FILE_NAME = 'some_prefab'
# Creates a new entity at the root level
entity = EditorEntity.create_editor_entity()
assert entity.id.IsValid(), "Couldn't create entity."
# Asserts if prefab creation doesn't succeed
child_prefab, child_instance = Prefab.create_prefab([entity], PREFAB_FILE_NAME)
child_entity_ids_inside_prefab = child_instance.get_direct_child_entities()
assert len(
child_entity_ids_inside_prefab) == 1, f"{len(child_entity_ids_inside_prefab)} entities found inside prefab" \
f" when there should have been just 1 entity"
child_entity_inside_prefab = child_entity_ids_inside_prefab[0]
child_entity_inside_prefab.focus_on_owning_prefab()
child_entity_inside_prefab.delete()
# Wait till prefab propagation finishes before validating entity deletion.
azlmbr.legacy.general.idle_wait_frames(1)
child_entity_ids_inside_prefab = child_instance.get_direct_child_entities()
assert len(
child_entity_ids_inside_prefab) == 0, f"{len(child_entity_ids_inside_prefab)} entities found inside prefab" \
f" when there should have been 0 entities"
if __name__ == "__main__":
from editor_python_test_tools.utils import Report
Report.start_test(DeleteEntity_UnderAnotherPrefab)