From 8b66f4fa0174ce69e4bebb8f9ac0f500f9d5de99 Mon Sep 17 00:00:00 2001 From: Frank Scholter Peres Date: Mon, 14 Sep 2026 12:11:35 +0000 Subject: [PATCH] fix build error getting dash scan --- scripts/generate_python_metadata_cache.py | 4 ++-- tests/test_generate_python_metadata_cache.py | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/scripts/generate_python_metadata_cache.py b/scripts/generate_python_metadata_cache.py index 09f01c3..5d8c2fe 100644 --- a/scripts/generate_python_metadata_cache.py +++ b/scripts/generate_python_metadata_cache.py @@ -87,8 +87,8 @@ def run_dash_license_scan(lockfiles: list[str], summary_path: str) -> bool: """ cache_dir = tempfile.mkdtemp(prefix="dash-license-scan-") env = os.environ.copy() - env["UV_CACHE_DIR"] = cache_dir - env["UV_TOOL_DIR"] = cache_dir + env["UV_CACHE_DIR"] = str(Path(cache_dir) / "cache") + env["UV_TOOL_DIR"] = str(Path(cache_dir) / "tools") command = [ _find_uvx(), "--from", diff --git a/tests/test_generate_python_metadata_cache.py b/tests/test_generate_python_metadata_cache.py index 951c3eb..1b0c67c 100644 --- a/tests/test_generate_python_metadata_cache.py +++ b/tests/test_generate_python_metadata_cache.py @@ -14,13 +14,33 @@ import os import tempfile import unittest +from pathlib import Path +from unittest.mock import patch from scripts.generate_python_metadata_cache import ( parse_dash_summary, parse_requirements_lockfile, + run_dash_license_scan, ) +class TestRunDashLicenseScan(unittest.TestCase): + @patch("scripts.generate_python_metadata_cache.subprocess.run") + def test_uses_separate_uv_cache_and_tool_directories(self, mock_run): + mock_run.return_value.returncode = 0 + mock_run.return_value.stderr = "" + + run_dash_license_scan(["requirements.txt"], "summary.csv") + + env = mock_run.call_args.kwargs["env"] + cache_dir = Path(env["UV_CACHE_DIR"]) + tool_dir = Path(env["UV_TOOL_DIR"]) + self.assertNotEqual(cache_dir, tool_dir) + self.assertEqual(cache_dir.parent, tool_dir.parent) + self.assertEqual(cache_dir.name, "cache") + self.assertEqual(tool_dir.name, "tools") + + class TestParseRequirementsLockfile(unittest.TestCase): def test_pinned_packages_and_hashes(self): fd, path = tempfile.mkstemp(text=True)