Fix INTERNALERROR when accessing locals / globals with faulty exec

This commit is contained in:
Anthony Sottile
2020-09-11 16:44:24 -07:00
parent 389e30283c
commit 96a17b1683
3 changed files with 27 additions and 3 deletions

View File

@@ -1352,6 +1352,19 @@ raise ValueError()
)
assert out == expected_out
def test_exec_type_error_filter(self, importasmod):
"""See #7742"""
mod = importasmod(
"""\
def f():
exec("a = 1", {}, [])
"""
)
with pytest.raises(TypeError) as excinfo:
mod.f()
# previously crashed with `AttributeError: list has no attribute get`
excinfo.traceback.filter()
@pytest.mark.parametrize("style", ["short", "long"])
@pytest.mark.parametrize("encoding", [None, "utf8", "utf16"])