From 1ee9747551e561606dde7b25d8f7ce8c755cc7fc Mon Sep 17 00:00:00 2001 From: Yiorgis Gozadinos Date: Tue, 24 Feb 2026 12:11:20 +0200 Subject: [PATCH] Catch MontyRuntimeError from Monty() constructor --- haiku_rag_slim/haiku/rag/agents/rlm/sandbox.py | 5 ++++- tests/agents/rlm/test_sandbox.py | 7 +++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/haiku_rag_slim/haiku/rag/agents/rlm/sandbox.py b/haiku_rag_slim/haiku/rag/agents/rlm/sandbox.py index 16c6511b..f845a097 100644 --- a/haiku_rag_slim/haiku/rag/agents/rlm/sandbox.py +++ b/haiku_rag_slim/haiku/rag/agents/rlm/sandbox.py @@ -162,7 +162,10 @@ class Sandbox: inputs=input_names, external_functions=list(external_fns.keys()), ) - except pydantic_monty.MontySyntaxError as e: + except ( + pydantic_monty.MontySyntaxError, + pydantic_monty.MontyRuntimeError, + ) as e: return SandboxResult(stdout="", stderr=str(e), success=False) stdout_lines: list[str] = [] diff --git a/tests/agents/rlm/test_sandbox.py b/tests/agents/rlm/test_sandbox.py index 01ecfef0..adc34daa 100644 --- a/tests/agents/rlm/test_sandbox.py +++ b/tests/agents/rlm/test_sandbox.py @@ -66,6 +66,13 @@ class TestSandboxErrors: assert not result.success assert "NameError" in result.stderr + @pytest.mark.asyncio + async def test_multi_module_import(self, sandbox): + """Test that unsupported multi-module imports are caught gracefully.""" + result = await sandbox.execute("import json, string") + assert not result.success + assert result.stderr != "" + class TestSandboxHaikuRAG: """Test haiku.rag functions in sandbox."""