diff options
| -rw-r--r-- | py/builtinimport.c | 2 | ||||
| -rw-r--r-- | tests/import/import_pkg7.py.exp | 8 | ||||
| -rw-r--r-- | tests/import/pkg7/subpkg1/subpkg2/mod3.py | 4 |
3 files changed, 11 insertions, 3 deletions
diff --git a/py/builtinimport.c b/py/builtinimport.c index 874d2dd7f..abbeefced 100644 --- a/py/builtinimport.c +++ b/py/builtinimport.c @@ -313,7 +313,7 @@ mp_obj_t mp_builtin___import__(size_t n_args, const mp_obj_t *args) { // We must have some component left over to import from if (p == this_name) { - mp_raise_ValueError(MP_ERROR_TEXT("can't perform relative import")); + mp_raise_msg(&mp_type_ImportError, MP_ERROR_TEXT("can't perform relative import")); } uint new_mod_l = (mod_len == 0 ? (size_t)(p - this_name) : (size_t)(p - this_name) + 1 + mod_len); diff --git a/tests/import/import_pkg7.py.exp b/tests/import/import_pkg7.py.exp new file mode 100644 index 000000000..8f21a615f --- /dev/null +++ b/tests/import/import_pkg7.py.exp @@ -0,0 +1,8 @@ +pkg __name__: pkg7 +pkg __name__: pkg7.subpkg1 +pkg __name__: pkg7.subpkg1.subpkg2 +mod1 +mod2 +mod1.foo +mod2.bar +ImportError diff --git a/tests/import/pkg7/subpkg1/subpkg2/mod3.py b/tests/import/pkg7/subpkg1/subpkg2/mod3.py index 0aa916d20..b0f4279fc 100644 --- a/tests/import/pkg7/subpkg1/subpkg2/mod3.py +++ b/tests/import/pkg7/subpkg1/subpkg2/mod3.py @@ -7,5 +7,5 @@ print(bar) # attempted relative import beyond top-level package try: from .... import mod1 -except ValueError: - print("ValueError") +except ImportError: + print("ImportError") |
