You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
o3de/AutomatedTesting/Gem/PythonTests
Nicholas Van Sickle 4ee2f341dc
Fix several Prefab outliner ordering issues (#5747)
* Fix several Prefab outliner ordering issues

This change does a few things to address instability in entity order when prefabs are enabled:
- Changes ordering behavior on entity add to always be "insert after the last selected sibling of the new entity, or at the end if there is no selected sibling"
- Adds some logic to ensure selection stays frozen during prefab propagation to allow this behavior to be used
- Alters delta generation in `PrefabPublicHandler::CreateEntity` to use the template instead of reserializing the DOM - this avoids a whole bunch of patching issues caused by EditorEntitySortComponent doing post-hoc order fix-up and should generally be safer/faster as we're producing patches for the actual target for those patches
- Because the duplicate action is DOM-driven, and there's some thorniness around making changes that will affect the template during propagation, this adds `PrefabPublicHandler::AddNewEntityToSortOrder` to directly patch the DOM for the duplicate case

Two bits of this come from patches from the incredibly helpful @AMZN-daimini
- Alters `PrefabPublicHandler::GenerateUndoNodesForEntityChangeAndUpdateCache` behavior for determining what's an override: we now check to see if we're part of the current focused instance but *not* owned by the focus instance directly. This lets entity order for nested prefabs get saved to the owning prefab instead of as an override. I'm putting this up for discussion without a feature flag gating it, but we may wish to make this a toggle or disable it outright for stabilization (in which case entity order won't be saved to the owning prefab)
- Adds a custom serializer for EditorEntitySortComponent. This isn't strictly necessary now, but it was very useful for debugging and ended up receiving much more manual testing its migration path and save/load path more than I've tested without using the serializer.

Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>

* Add missing serializers

Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>

* Address some review feedback

Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>

* Generate patch in `PrefabPublicHandler::CreateEntity` using the instance's fully evaluated template in-memory

Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>

* Fix up comment

Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>

* Fix Linux build

Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>

* Try to make test less timing dependent (haven't been able to repro failure locally)

Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>

* Fix another build issue

Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>

* Fix unit test failures

Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>

* Fix a duplicate issue with sanitization that was causing sporadic test failure (thanks, test!)

Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>

* One more Linux fix...

Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
4 years ago
..
AWS AWSClientAuth updated to use custom CognitoCachingCredentialsProvider (#5525) 4 years ago
Atom improve docstring descriptions for FOV degrees and Asset.id not asset paths for diff asset properties 4 years ago
Blast Added PAL to blast and whitebox tests to only enable automated tests on supported platforms: windows only at the moment. (#5165) 4 years ago
EditorPythonBindings Update the FileIO Aliases (#4186) 4 years ago
EditorPythonTestTools Add support for getting the level entity when prefabs are enabled. (#5680) 4 years ago
NvCloth Cloth automated tests only check for cloth gem errors and warnings (#5374) 4 years ago
Physics Renamed ctest_pytest.ini to pytest.ini so it is used by default, added TestSuite_ as collection file (#4822) 4 years ago
Platform Shorten copyright headers by splitting into 2 lines (#2213) 4 years ago
Prefab Add Detach and Duplicate Prefab basic workflow auto test (#4506) 4 years ago
PythonAssetBuilder {lyn7352} adding more logging to mock asset builder test (#5591) 4 years ago
Terrain Changes from comments made after merge (#5738) 4 years ago
WhiteBox Added PAL to blast and whitebox tests to only enable automated tests on supported platforms: windows only at the moment. (#5165) 4 years ago
assetpipeline Asset bundler test fixes (#5548) 4 years ago
automatedtesting_shared Fix for PyTest editor test case names. 4 years ago
editor Fix several Prefab outliner ordering issues (#5747) 4 years ago
editor_test_testing Renamed ctest_pytest.ini to pytest.ini so it is used by default, added TestSuite_ as collection file (#4822) 4 years ago
largeworlds Skipping GraphUpdate test due to LC node issue in Debug configuration (#4847) 4 years ago
scripting Marked test_VariableManager_UnpinVariableType_Works as xfail, the test needs to be reworked 4 years ago
smoke Force prefabs off for Editor smoke test 4 years ago
streaming Shorten copyright headers by splitting into 2 lines (#2213) 4 years ago
CMakeLists.txt Physics/test axis aligned box shape configuration works #7378a (#5366) 4 years ago