mathcompose / tests /test_pyexec.py
42e's picture
Upload folder using huggingface_hub
5a983c2 verified
Raw
History Blame Contribute Delete
794 Bytes
"""Sandboxed executor for the code-verifying verifier (M1c)."""
from mathcompose.common.pyexec import run_python, extract_code_blocks
def test_arithmetic_and_output():
assert run_python("print(sum(range(101)))").as_feedback() == "5050"
assert run_python("print(6*7)").stdout.strip() == "42"
def test_timeout_is_caught():
r = run_python("while True: pass", timeout=1.0)
assert not r.ok and "timeout" in r.stderr
def test_error_is_caught():
r = run_python("print(1/0)")
assert not r.ok and "ZeroDivisionError" in r.as_feedback()
def test_extract_code_blocks():
text = "a\n```python\nprint(1)\n```\nb\n```\nprint(2)\n```"
blocks = extract_code_blocks(text)
assert blocks == ["print(1)", "print(2)"]
assert run_python(blocks[0]).as_feedback() == "1"