diff options
author | Damien George <damien.p.george@gmail.com> | 2017-01-16 16:21:04 +1100 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2017-01-16 16:21:04 +1100 |
commit | 63e291de706c4c8092fe5f19f3726e5da5e80913 (patch) | |
tree | eab15158ccf31058aa75d3d4e65cdf04c8176cb7 | |
parent | 9317fee5238f8261e05a19187da355baa9d017ab (diff) | |
download | micropython-63e291de706c4c8092fe5f19f3726e5da5e80913.tar.gz micropython-63e291de706c4c8092fe5f19f3726e5da5e80913.zip |
py/builtinimport: Raise ValueError for bad relative import, per CPython.
-rw-r--r-- | py/builtinimport.c | 3 | ||||
-rw-r--r-- | tests/import/pkg7/subpkg1/subpkg2/mod3.py | 4 |
2 files changed, 3 insertions, 4 deletions
diff --git a/py/builtinimport.c b/py/builtinimport.c index 4024c5d59a..0e3f160a73 100644 --- a/py/builtinimport.c +++ b/py/builtinimport.c @@ -360,8 +360,7 @@ mp_obj_t mp_builtin___import__(size_t n_args, const mp_obj_t *args) { qstr new_mod_q = qstr_from_strn(new_mod, new_mod_l); DEBUG_printf("Resolved base name for relative import: '%s'\n", qstr_str(new_mod_q)); if (new_mod_q == MP_QSTR_) { - // CPython raises SystemError - mp_raise_msg(&mp_type_ImportError, "cannot perform relative import"); + mp_raise_msg(&mp_type_ValueError, "cannot perform relative import"); } module_name = MP_OBJ_NEW_QSTR(new_mod_q); mod_str = new_mod; diff --git a/tests/import/pkg7/subpkg1/subpkg2/mod3.py b/tests/import/pkg7/subpkg1/subpkg2/mod3.py index 747cde03b6..7ed69bdee9 100644 --- a/tests/import/pkg7/subpkg1/subpkg2/mod3.py +++ b/tests/import/pkg7/subpkg1/subpkg2/mod3.py @@ -7,5 +7,5 @@ print(bar) # whereas CPython raises a ValueError try: from .... import mod1 -except (ImportError, ValueError): - print('Error') +except ValueError: + print('ValueError') |