From 3a68d05eb9fbfca04928df35bbe1f7db41fb8489 Mon Sep 17 00:00:00 2001 From: tegwick Date: Fri, 23 Oct 2026 07:02:49 +0200 Subject: [PATCH] test: resolve relative PYTHONPATH for the adapter source-closure probe Co-Authored-By: Claude Opus 5.5 Assistant: claude-code Assistant-Model: opus Assistant-Process: 696317@bnt-lap001 Assistant-Session: bab9e511-0915-45b3-926a-2fab552edff6 --- sso-mfa/k8s/keycape/test_adapter_source_closure.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/sso-mfa/k8s/keycape/test_adapter_source_closure.py b/sso-mfa/k8s/keycape/test_adapter_source_closure.py index d44ac8b..6b6da3d 100644 --- a/sso-mfa/k8s/keycape/test_adapter_source_closure.py +++ b/sso-mfa/k8s/keycape/test_adapter_source_closure.py @@ -48,9 +48,19 @@ print(json.dumps({'loaded': sorted(set(local)), 'pinned': sorted(pinned)})) KNOWN_FAILING = set() +def _probe_env(): + # The probe runs with cwd=ROOT, so a relative PYTHONPATH entry would stop + # pointing where the caller meant it to; resolve entries against our cwd. + env = dict(os.environ) + if env.get('PYTHONPATH'): + env['PYTHONPATH'] = os.pathsep.join( + str(Path(p).resolve()) for p in env['PYTHONPATH'].split(os.pathsep) if p) + return env + + def probe(adapter): out = subprocess.run([sys.executable, '-c', PROBE, str(ROOT), str(REPO), adapter], - capture_output=True, text=True, env=dict(os.environ), cwd=ROOT) + capture_output=True, text=True, env=_probe_env(), cwd=ROOT) if out.returncode: raise AssertionError(f'{adapter} probe failed: {out.stderr[-2000:]}') return json.loads(out.stdout.strip().splitlines()[-1])