| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- """
- 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 check_result(result, msg):
- from editor_python_test_tools.utils import Report
- if not result:
- Report.result(msg, False)
- raise Exception(msg + " : FAILED")
- def Editor_ComponentPropertyCommands_containers():
- # Description:
- # Tests component properties that are containers
- from editor_python_test_tools.utils import Report
- from editor_python_test_tools.utils import TestHelper
- import azlmbr.bus as bus
- import azlmbr.editor as editor
- import azlmbr.legacy.general
- import azlmbr.entity as entity
- import azlmbr.surface_data
- import azlmbr.globals
- # Required for automated tests
- TestHelper.init_idle()
- # Open the test level
- TestHelper.open_level(directory="", level="Base")
- azlmbr.legacy.general.idle_wait_frames(1)
- def is_container(pte, path):
- return pte.is_container(path)
- def get_container_count(pte, path):
- outcome = pte.get_container_count(path)
- if(outcome.IsSuccess()):
- return outcome.GetValue()
- return False
- def reset_container(pte, path):
- outcome = pte.reset_container(path)
- if(outcome.IsSuccess()):
- return outcome.GetValue()
- return False
- def add_container_item(pte, path, key, item):
- outcome = pte.add_container_item(path, key, item)
- if(outcome.IsSuccess()):
- return outcome.GetValue()
- return False
- def remove_container_item(pte, path, key):
- outcome = pte.remove_container_item(path, key)
- if(outcome.IsSuccess()):
- return outcome.GetValue()
- return False
- def update_container_item(pte, path, key, value):
- outcome = pte.update_container_item(path, key, value)
- if(outcome.IsSuccess()):
- return outcome.GetValue()
- return False
- def get_container_item(pte, path, key):
- outcome = pte.get_container_item(path, key)
- if(outcome.IsSuccess()):
- return outcome.GetValue()
- return False
- # Create new Entity
- entityId = editor.ToolsApplicationRequestBus(bus.Broadcast, 'CreateNewEntity', entity.EntityId())
- check_result(entityId, "New entity with no parent created")
- tagOne = azlmbr.surface_data.SurfaceTag()
- tagOne.SetTag('one')
- tagTwo = azlmbr.surface_data.SurfaceTag()
- tagTwo.SetTag('two')
- tagThree = azlmbr.surface_data.SurfaceTag()
- tagThree.SetTag('three')
- tagFour = azlmbr.surface_data.SurfaceTag()
- tagFour.SetTag('four')
- # create a component with a TagSurface container
- typeIdsList = [azlmbr.globals.property.GradientSurfaceDataComponentTypeId]
- componentOutcome = editor.EditorComponentAPIBus(bus.Broadcast, 'AddComponentsOfType', entityId, typeIdsList)
- check_result(componentOutcome.IsSuccess(), 'AddComponentsOfType')
- components = componentOutcome.GetValue()
- tagList = components[0]
- pteOutcome = editor.EditorComponentAPIBus(bus.Broadcast, 'BuildComponentPropertyTreeEditor', tagList)
- #check_result(pteOutcome.IsSuccess(), 'BuildComponentPropertyTreeEditor')
- #pte = pteOutcome.GetValue()
-
- ## Test BuildComponentPropertyList
- #paths = pte.build_paths_list()
- #print(f'Paths {paths}')
- #tagListPropertyPath = 'm_template|Extended Tags'
- #check_result(is_container(pte, tagListPropertyPath), 'Has a container')
- #check_result(get_container_count(pte, tagListPropertyPath) == 0, 'Has zero items')
- #check_result(add_container_item(pte, tagListPropertyPath, 0, tagOne), 'Add an item 0')
- #check_result(get_container_count(pte, tagListPropertyPath) == 1, 'Has one item 0')
- #check_result(add_container_item(pte, tagListPropertyPath, 1, tagOne), 'Add an item 1')
- #check_result(add_container_item(pte, tagListPropertyPath, 2, tagTwo), 'Add an item 2')
- #check_result(add_container_item(pte, tagListPropertyPath, 3, tagThree), 'Add an item 3')
- #check_result(get_container_count(pte, tagListPropertyPath) == 4, 'Has four items')
- #check_result(update_container_item(pte, tagListPropertyPath, 2, tagFour), 'Updated an item')
- #itemTag = get_container_item(pte, tagListPropertyPath, 2)
- #check_result (itemTag.Equal(tagFour), 'itemTag equals tagFour')
- #check_result(remove_container_item(pte, tagListPropertyPath, 0), 'Removed one item 0')
- #check_result(remove_container_item(pte, tagListPropertyPath, 0), 'Removed one item 1')
- #check_result(get_container_count(pte, tagListPropertyPath) == 2, 'Has two items')
- #check_result(reset_container(pte, tagListPropertyPath), 'Reset items')
- #check_result(get_container_count(pte, tagListPropertyPath) == 0, 'Has cleared the items')
- # all tests worked
- Report.result("Editor_ComponentPropertyCommands_containers ran", True)
- if __name__ == "__main__":
- from editor_python_test_tools.utils import Report
- Report.start_test(Editor_ComponentPropertyCommands_containers)
|