From e323da729101c9fe626b5b08cafef2dbdbb70441 Mon Sep 17 00:00:00 2001 From: Damien George Date: Tue, 17 Dec 2024 15:15:59 +1100 Subject: [PATCH] tests/run-tests.py: Set name of injected test module to '__main__'. Running unittest-based tests with --via-mpy is currently broken, because the unittest test needs the module to be named `__main__`, whereas it's actually called `__injected_test`. Fix this by changing the name when the file is opened. Signed-off-by: Damien George --- tests/run-tests.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/run-tests.py b/tests/run-tests.py index 6fe45707bb6cd..c72178cd760c2 100755 --- a/tests/run-tests.py +++ b/tests/run-tests.py @@ -59,10 +59,13 @@ def base_path(*p): os.environ["PYTHONIOENCODING"] = "utf-8" # Code to allow a target MicroPython to import an .mpy from RAM +# Note: the module is named `__injected_test` but it needs to have `__name__` set to +# `__main__` so that the test sees itself as the main module, eg so unittest works. injected_import_hook_code = """\ import sys, os, io, vfs class __File(io.IOBase): def __init__(self): + sys.modules['__injected_test'].__name__ = '__main__' self.off = 0 def ioctl(self, request, arg): return 0