summaryrefslogtreecommitdiff
path: root/tests/micropython/native_with.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/micropython/native_with.py')
-rw-r--r--tests/micropython/native_with.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/micropython/native_with.py b/tests/micropython/native_with.py
new file mode 100644
index 000000000..343f3e8d3
--- /dev/null
+++ b/tests/micropython/native_with.py
@@ -0,0 +1,28 @@
+# test with handling within a native function
+
+class C:
+ def __init__(self):
+ print('__init__')
+ def __enter__(self):
+ print('__enter__')
+ def __exit__(self, a, b, c):
+ print('__exit__', a, b, c)
+
+# basic with
+@micropython.native
+def f():
+ with C():
+ print(1)
+f()
+
+# nested with and try-except
+@micropython.native
+def f():
+ try:
+ with C():
+ print(1)
+ fail
+ print(2)
+ except NameError:
+ print('NameError')
+f()