aboutsummaryrefslogtreecommitdiffstats
path: root/3rdparty/pybind11/tests/test_eval.py
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/pybind11/tests/test_eval.py')
-rw-r--r--3rdparty/pybind11/tests/test_eval.py21
1 files changed, 18 insertions, 3 deletions
diff --git a/3rdparty/pybind11/tests/test_eval.py b/3rdparty/pybind11/tests/test_eval.py
index 1bb05af0..51b6b796 100644
--- a/3rdparty/pybind11/tests/test_eval.py
+++ b/3rdparty/pybind11/tests/test_eval.py
@@ -1,10 +1,8 @@
-# -*- coding: utf-8 -*-
import os
import pytest
import env # noqa: F401
-
from pybind11_tests import eval_ as m
@@ -19,7 +17,7 @@ def test_evals(capture):
assert m.test_eval_failure()
-@pytest.mark.xfail("env.PYPY and not env.PY2", raises=RuntimeError)
+@pytest.mark.xfail("env.PYPY", raises=RuntimeError)
def test_eval_file():
filename = os.path.join(os.path.dirname(__file__), "test_eval_call.py")
assert m.test_eval_file(filename)
@@ -33,3 +31,20 @@ def test_eval_empty_globals():
g = {}
assert "__builtins__" in m.eval_empty_globals(g)
assert "__builtins__" in g
+
+
+def test_eval_closure():
+ global_, local = m.test_eval_closure()
+
+ assert global_["closure_value"] == 42
+ assert local["closure_value"] == 0
+
+ assert "local_value" not in global_
+ assert local["local_value"] == 0
+
+ assert "func_global" not in global_
+ assert local["func_global"]() == 42
+
+ assert "func_local" not in global_
+ with pytest.raises(NameError):
+ local["func_local"]()