summaryrefslogtreecommitdiff
path: root/tests/micropython
diff options
context:
space:
mode:
Diffstat (limited to 'tests/micropython')
-rw-r--r--tests/micropython/viper_globals.py19
-rw-r--r--tests/micropython/viper_globals.py.exp2
2 files changed, 21 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']())
diff --git a/tests/micropython/viper_globals.py.exp b/tests/micropython/viper_globals.py.exp
new file mode 100644
index 000000000..5731b89c1
--- /dev/null
+++ b/tests/micropython/viper_globals.py.exp
@@ -0,0 +1,2 @@
+NameError
+123