check_model_ready_fixture.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. """
  2. Copyright (c) Contributors to the Open 3D Engine Project.
  3. For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. SPDX-License-Identifier: Apache-2.0 OR MIT
  5. """
  6. import azlmbr.bus
  7. import azlmbr.asset
  8. from functools import partial
  9. from editor_python_test_tools.utils import TestHelper
  10. class OnModelReloaded:
  11. def __init__(self):
  12. self.isModelReloaded = False
  13. def model_is_reloaded_predicate(self):
  14. """
  15. A predicate function what will be used in wait_for_condition.
  16. """
  17. return self.isModelReloaded
  18. def on_model_reloaded(self, parameter):
  19. self.isModelReloaded = True
  20. def wait_for_on_model_reloaded(self, asset_id):
  21. self.isModelReloaded = False
  22. # Listen for notifications when assets are reloaded
  23. self.onModelReloadedHandler = azlmbr.asset.AssetBusHandler()
  24. self.onModelReloadedHandler.connect(asset_id)
  25. self.onModelReloadedHandler.add_callback('OnAssetReloaded', self.on_model_reloaded)
  26. waitCondition = partial(self.model_is_reloaded_predicate)
  27. if TestHelper.wait_for_condition(waitCondition, 20.0):
  28. return True
  29. else:
  30. return False