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.
61 lines
2.7 KiB
Python
61 lines
2.7 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
|
|
|
|
A fixture for Setting Up Asset Processor Batch workspace for tests
|
|
"""
|
|
|
|
# Import builtin libraries
|
|
import os
|
|
import time
|
|
import pytest
|
|
from typing import Dict
|
|
from ly_test_tools.o3de.asset_processor import ASSET_PROCESSOR_PLATFORM_MAP
|
|
|
|
@pytest.fixture
|
|
def ap_setup_fixture(request, workspace) -> Dict:
|
|
"""
|
|
Sets up useful file locations based on the current workspace.
|
|
:return: useful locations as a dictionary
|
|
"""
|
|
test_asset_dir_name = "ap_test_assets"
|
|
resources = {
|
|
# Path to directory where AssetProcessor[Batch].exe lives
|
|
"bin_dir": workspace.paths.build_directory(),
|
|
# Name of temporary folder for assets (scope = function)
|
|
"test_asset_dir_name": test_asset_dir_name,
|
|
# Temporary folder within project cache for use in test
|
|
"cache_test_assets": os.path.join(workspace.paths.asset_cache(ASSET_PROCESSOR_PLATFORM_MAP[workspace.asset_processor_platform]), test_asset_dir_name),
|
|
# Joblog folder location
|
|
"test_joblogs_dir": os.path.join(workspace.paths.build_directory(), "logs", "JobLogs", test_asset_dir_name),
|
|
# Temporary folder in project for use in test
|
|
"project_test_assets_dir": os.path.join(workspace.paths.project(), test_asset_dir_name),
|
|
# Test-level asset folder. Directory contains a subfolder for each test (i.e. C1234567)
|
|
"tests_dir": "",
|
|
# Path to AP_Batch.log
|
|
"ap_batch_log_file": workspace.paths.ap_batch_log(),
|
|
# Path to AP_GUI.log
|
|
"ap_logFile": workspace.paths.ap_gui_log(),
|
|
# Path to the engine root directory
|
|
"engine_dir": workspace.paths.engine_root(),
|
|
# Path to the current project directory
|
|
"project_dir": workspace.paths.project(),
|
|
# Path to AP Batch file
|
|
"ap_batch_file": workspace.paths.asset_processor_batch(),
|
|
# Path to shared TestAssets folder
|
|
"shared_TestAssets": os.path.join(workspace.paths.project(), "TestAssets"),
|
|
# Path to the asset cache folder
|
|
"asset_cache_dir": os.path.join(workspace.paths.asset_cache(ASSET_PROCESSOR_PLATFORM_MAP[workspace.asset_processor_platform])),
|
|
}
|
|
|
|
# Changing modtime of UserSettings.xml so it is always processed by AssetProcessorBatch
|
|
# to prevent unexpected processing
|
|
user_settings_file = os.path.join(workspace.paths.project(), "user", "UserSettings.xml")
|
|
if os.path.exists(user_settings_file):
|
|
timestamp = time.time()
|
|
os.utime(user_settings_file, (timestamp, timestamp))
|
|
|
|
return resources
|