diff options
Diffstat (limited to 'tests/basics/builtin_compile.py')
-rw-r--r-- | tests/basics/builtin_compile.py | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/tests/basics/builtin_compile.py b/tests/basics/builtin_compile.py index ef3ff014d4..32c6667d8b 100644 --- a/tests/basics/builtin_compile.py +++ b/tests/basics/builtin_compile.py @@ -7,10 +7,9 @@ def have_compile(): except NameError: return False -# global variable for compiled code to access -x = 1 - def test(): + global x + c = compile("print(x)", "file", "exec") try: @@ -18,11 +17,31 @@ def test(): except NameError: print("NameError") + # global variable for compiled code to access + x = 1 + exec(c) exec(c, {"x":2}) exec(c, {}, {"x":3}) + # single/eval mode + exec(compile('print(1 + 1)', 'file', 'single')) + print(eval(compile('1 + 1', 'file', 'eval'))) + + # bad mode + try: + compile('1', 'file', '') + except ValueError: + print("ValueError") + + # exception within compiled code + try: + exec(compile('noexist', 'file', 'exec')) + except NameError: + print("NameError") + print(x) # check 'x' still exists as a global + if have_compile(): test() else: |