The EditorEntitySortComponent was relying on serialization callbacks not exposed to the JSON serializer to marshal data between its serialized state and its runtime state, which led to the outliner sort order becoming disrupted every time a prefab propagation occurs (and the component is subsequently serialized and deserialized). This change:
- Forces `PrepareSave` and `PostLoad` for `EditorEntitySortComponent` to be called at update (direct descendant added or removed) and activation time respectively while prefabs are enabled. While this could be optimized, and this logic stands to be refactored once slices are fully removed, I was unable to gather any samples in which `PrepareSave` are called in a sampling profiler in a scene with 1000 top-level entities, so I don't anticipate this introducing a meaningful performance regression in the short term.
- Disables updates in `EditorEntitySortComponent` during prefab propagation, as any detected changes do not signal authored intent at this time
- Made `GetEntityChildOrder` in `EditorEntityHelpers` work with prefabs enabled, which restores the existing "Sort: A -> Z" and "Sort: Z -> A" behaviors (which have some preexisting issues this does not fix)
- Adds a Python regression test to the Editor suite to validate this behavior - the test is currently in TestSuite_Main and not TestSuite_Main_Optimized because it requires an Editor launch with prefabs enabled, this can be fixed once AutomatedTesting is further migrated away from slices
@AMZN-daimini has a larger change that improves the JSON serialization format (https://github.com/o3de/o3de/pull/1292) which we should absolutely bring in in the future to improve the legibility of the Prefab format, but this change fixes the functionality (including saving & reloading a level and keeping a consistent order) without altering the Prefab format - this lower impact radius fix is my preference for our stabilization period.
Signed-off-by: nvsickle <nvsickle@amazon.com>
* Fixed warnings of unused marks, renamed ctest_pytest.ini to pytest.ini to better consistency on runs
* Fixed some test suites to run propertly
* Fix missing arguments
* Fixed missing cmakelists and renamed missing file
* Temp disable editor_testing_tests as timeout in jenkins
- Add a new automated test PrefabBasicWorkflow_CreateReparentAndDetachPrefab for verifying prefab detachment basic workflow.
- Add a new automated test PrefabBasicWorkflow_CreateAndDuplicatePrefab for verifying prefab detachment basic workflow.
- Fix a bug related to sets of entity ids in Reparent helper function .
* Skipping GraphUpdate test due to LC node issue in Debug configuration
Signed-off-by: jckand-amzn <jckand@amazon.com>
* Reverting test type for GraphUpdates test to EditorSharedTest
Signed-off-by: jckand-amzn <jckand@amazon.com>
* Updating xfail reason for GraphUpdates test with GitHub issue link
Signed-off-by: jckand-amzn <jckand@amazon.com>
The Test runs with a wait_for_condition, and the original timeout was right on the edge of how long the test takes to reach that condition.
Signed-off-by: amzn-sean <75276488+amzn-sean@users.noreply.github.com>
* PostFX Gradient Weight Modifiere component P0 parallel test
Signed-off-by: Scott Murray <scottmur@amazon.com>
* fixing some comment step numbering
Signed-off-by: Scott Murray <scottmur@amazon.com>
* fixing PostFX casing and method camel casing of the test function
Signed-off-by: Scott Murray <scottmur@amazon.com>
* changing the casing of the file name
Signed-off-by: Scott Murray <scottmur@amazon.com>
* add some test case id markers
Signed-off-by: jromnoa <jromnoa@amazon.com>
* re-added pytest.mark.test_case_id markers for test cases
Signed-off-by: jromnoa <jromnoa@amazon.com>
* re-add directional light log lines that were missing and re-add directional light test case id
Signed-off-by: jromnoa <jromnoa@amazon.com>
Joints_BallLeadFollowerCollide - changed the idle_wait to a wait_for_condition of the lead and follower colliding with a 10 second timeout. It was a 2 second timeout which is on the edge of the time from start to collision (~1.5sec).
Joints_HingeNoLimitsConstrained - now measures the angle the joint is at and waits for the follower to raise up and over the lead, or fail after a 10sec timeout. This use to 'catch' the follower joint in a force region and check the position of the follower to determine pass/fail.
Signed-off-by: amzn-sean <75276488+amzn-sean@users.noreply.github.com>
* Remove many unused variables and unused setting files
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* Remove a few more dead config vars
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* fix android test_ConfigureSettings_DefaultValues_SetsValues
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* PostFX Layer component P0 parallel test
Signed-off-by: Scott Murray <scottmur@amazon.com>
* removing an unused import
Signed-off-by: Scott Murray <scottmur@amazon.com>
ATOM-16575 clean up image builder presets files
Removed unused image builder presets
Deprecating preset UUID and use preset name as unique id
Delete all .exportsettings file which were only used for legacy imageProcessing gem.
Signed-off-by: Qing Tao <qingtao@amazon.com>
* double test timeout from 60 seconds to 120 seconds in attempt to fix it for nightly GPU runs
Signed-off-by: jromnoa <jromnoa@amazon.com>
* add a file to launch with the test to ensure we get a full viewport load completed
Signed-off-by: jromnoa <jromnoa@amazon.com>
* fix import error
Signed-off-by: jromnoa <jromnoa@amazon.com>
* remove python error checks
Signed-off-by: jromnoa <jromnoa@amazon.com>
* add new log line specific to each RHI to check for
Signed-off-by: jromnoa <jromnoa@amazon.com>
* remove the new test script as it is no longer needed with our improved log lines check - the viewport logs don't show up in AR for some reason
Signed-off-by: jromnoa <jromnoa@amazon.com>
* Mesh component P0 automation for parallel testing
Signed-off-by: Scott Murray <scottmur@amazon.com>
* Remove unused imports
Signed-off-by: Scott Murray <scottmur@amazon.com>
* Decorating test classes with test_case_id to corresponding testrail cases
Signed-off-by: Scott Murray <scottmur@amazon.com>
* add remaining hydra code for test to run using new parallel test classes and interfaces
* fix return value of Secondary Grid Spacing property test for Grid Entity
* Add `or error_tracer.has_asserts` call for better error catching
* make `Tests.viewport_set` test check a `Report.critical_result()` check instead of `Report.result()` check
* add updates from PR feedback: makes constants for re-used component name strings, move test verifications into the Report() call instead of setting first then calling Report(), use builtin math.isclose function over custom function
* remove after_level_load() and split it into several function calls, add screenshot check, cleanup the GPU script and fix the rendering not displaying by setting global_extra_cmdline_args = []
* fixes the viewport Test check and splits up the helper functions into multiple functions
* add comment for global_extra_cmdline_args update in test and rename the zip file to f'screenshots_{formatted_timestamp}.zip'
Signed-off-by: jromnoa <jromnoa@amazon.com>
Co-authored-by: smurly <scottmur@amazon.com>