summaryrefslogtreecommitdiff
path: root/tests/import/import_override2.py
diff options
context:
space:
mode:
authorChris Liechti <cliechti@gmx.net>2020-11-30 16:40:56 +0100
committerDamien George <damien@micropython.org>2025-11-21 00:01:01 +1100
commit48d96b400e73e7fbcca8365d0bebc0c41402dde5 (patch)
treeb8c555c47655b4e939cd240f510365c1c4a4b269 /tests/import/import_override2.py
parentc07fda73f7115d2d2d4e2d4bba00a3e8dfd1367e (diff)
py/builtinimport: Support relative import in custom __import__ callback.
The globals need to be forwarded from the caller's context. Signed-off-by: Damien George <damien@micropython.org>
Diffstat (limited to 'tests/import/import_override2.py')
-rw-r--r--tests/import/import_override2.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/import/import_override2.py b/tests/import/import_override2.py
new file mode 100644
index 000000000..25aac44fe
--- /dev/null
+++ b/tests/import/import_override2.py
@@ -0,0 +1,18 @@
+# test overriding __import__ combined with importing from the filesystem
+
+
+def custom_import(name, globals, locals, fromlist, level):
+ if level > 0:
+ print("import", name, fromlist, level)
+ return orig_import(name, globals, locals, fromlist, level)
+
+
+orig_import = __import__
+try:
+ __import__("builtins").__import__ = custom_import
+except AttributeError:
+ print("SKIP")
+ raise SystemExit
+
+# import calls __import__ behind the scenes
+import pkg7.subpkg1.subpkg2.mod3