circuitpython/tests/import/builtin_ext.py
Jim Mussared dfa7677e2f tests/import/builtin_ext.py: Add test for built-in module override.
This verifies the behavior:
 - Exact matches of built-ins bypass filesystem.
 - u-prefix modules can be overridden from the filesystem.
 - Builtin import can be forced using either u-prefix or sys.path=[].

This work was funded through GitHub Sponsors.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2023-06-01 16:21:37 +10:00

37 lines
829 B
Python

import sys
print(sys, hasattr(sys, "__file__"))
sys.path.clear()
sys.path.append("ext")
# All three should only get builtins, despite sys.py, usys.py, and
# micropython.py being in the path.
import micropython
print(micropython, hasattr(micropython, "__file__"))
import sys
print(sys, hasattr(sys, "__file__"))
import usys
print(usys, hasattr(usys, "__file__"))
# This should get os.py, which uses uos to get the builtin.
import os
print(os, hasattr(os, "__file__"), os.sep, os.extra)
# This should get time.py, which uses empty sys.path to get the builtin.
import time
print(time, hasattr(time, "__file__"), time.sleep, time.extra)
# These should get the builtins.
import uos
print(uos, hasattr(uos, "__file__"), hasattr(uos, "extra"))
import utime
print(utime, hasattr(utime, "__file__"), hasattr(utime, "extra"))