summaryrefslogtreecommitdiff
path: root/tests/micropython/viper_globals.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/micropython/viper_globals.py')
-rw-r--r--tests/micropython/viper_globals.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/micropython/viper_globals.py b/tests/micropython/viper_globals.py
new file mode 100644
index 000000000..9c68dc3da
--- /dev/null
+++ b/tests/micropython/viper_globals.py
@@ -0,0 +1,19 @@
+# test that viper functions capture their globals context
+
+gl = {}
+
+exec("""
+@micropython.viper
+def f():
+ return x
+""", gl)
+
+# x is not yet in the globals, f should not see it
+try:
+ print(gl['f']())
+except NameError:
+ print('NameError')
+
+# x is in globals, f should now see it
+gl['x'] = 123
+print(gl['f']())