52 lines
1.6 KiB
Python
52 lines
1.6 KiB
Python
# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
"""Utility for resolving test output paths.
|
|
|
|
This module provides centralized logic for determining where test output
|
|
(logs, temporary files, etc.) should be written. The goal is to keep test
|
|
output out of the git working tree by default.
|
|
"""
|
|
|
|
import os
|
|
import tempfile
|
|
from pathlib import Path
|
|
from typing import Union
|
|
|
|
|
|
def resolve_test_output_path(path: Union[str, Path]) -> str:
|
|
"""Resolve a test output path to an absolute path.
|
|
|
|
This function ensures test output is written to a dedicated location
|
|
rather than cluttering the git working tree. The behavior matches
|
|
the existing ManagedProcess implementation.
|
|
|
|
Args:
|
|
path: A relative or absolute path for test output.
|
|
|
|
Returns:
|
|
An absolute path. If the input is already absolute, it's returned
|
|
unchanged. If relative, it's resolved under the test output root
|
|
directory.
|
|
|
|
Environment Variables:
|
|
DYN_TEST_OUTPUT_PATH: Override the default test output root.
|
|
Defaults to /tmp/dynamo_tests/.
|
|
|
|
Examples:
|
|
>>> resolve_test_output_path("/absolute/path")
|
|
'/absolute/path'
|
|
>>> resolve_test_output_path("test_foo") # doctest: +SKIP
|
|
'/tmp/dynamo_tests/test_foo'
|
|
"""
|
|
path_str = str(path)
|
|
|
|
if os.path.isabs(path_str):
|
|
return path_str
|
|
|
|
log_root = os.environ.get(
|
|
"DYN_TEST_OUTPUT_PATH",
|
|
os.path.join(tempfile.gettempdir(), "dynamo_tests"),
|
|
)
|
|
return os.path.join(log_root, path_str)
|