From 3a60a02649f11e0c3a6cfb8f091a079b9316ce18 Mon Sep 17 00:00:00 2001 From: RobLe3 Date: Fri, 9 Oct 2026 22:07:00 +0200 Subject: [PATCH] Handle explicit prepared package home without HOME --- scripts/pre1_package_execution.py | 5 ++--- scripts/test_pre1_prepared_home.py | 8 +++++++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/scripts/pre1_package_execution.py b/scripts/pre1_package_execution.py index 60475b2..c122755 100644 --- a/scripts/pre1_package_execution.py +++ b/scripts/pre1_package_execution.py @@ -343,9 +343,8 @@ def validate_binding_context(value: dict, context: dict) -> None: def prepared_package_home() -> Path: """Keep the immutable preparation boundary separate from per-case HOME.""" - return safe_path( - Path(os.environ.get("IICP_PRE1_PREPARED_PACKAGE_HOME", os.environ["HOME"])) - ) + value = os.environ.get("IICP_PRE1_PREPARED_PACKAGE_HOME") + return safe_path(Path(value if value is not None else os.environ["HOME"])) def validate_binding(value: dict, context: dict, artifact: Path, root: Path, diff --git a/scripts/test_pre1_prepared_home.py b/scripts/test_pre1_prepared_home.py index e3f2600..cf7109e 100644 --- a/scripts/test_pre1_prepared_home.py +++ b/scripts/test_pre1_prepared_home.py @@ -2,10 +2,11 @@ import ast import json import os -from pathlib import Path import tempfile import unittest +from pathlib import Path from unittest.mock import patch + import pre1_package_execution as adapter @@ -36,6 +37,11 @@ def test_execution_home_does_not_replace_preparation_owner(self): with self.assertRaises(ValueError): adapter.validate_workspace_boundary(workspace, self.case, installed, source) + def test_explicit_preparation_owner_does_not_require_home(self): + env = {"IICP_PRE1_PREPARED_PACKAGE_HOME": str(self.prepared)} + with patch.dict(os.environ, env, clear=True): + self.assertEqual(adapter.prepared_package_home(), self.prepared) + def test_wrong_explicit_preparation_boundary_is_rejected(self): workspace = self.prepared / "workspace" installed = workspace / "payload"