# importlib, where the latter raises other errors for cases where
# pkgutil previously raised ImportError
msg = "Error while finding module specification for {!r} ({}: {})"
+ if mod_name.endswith(".py"):
+ msg += (f". Try using '{mod_name[:-3]}' instead of "
+ f"'{mod_name}' as the module name.")
raise error(msg.format(mod_name, type(ex).__name__, ex)) from ex
if spec is None:
raise error("No module named %s" % mod_name)
self.assertNotIn(b'is a package', err)
self.assertNotIn(b'Traceback', err)
+ def test_hint_when_triying_to_import_a_py_file(self):
+ with support.temp_dir() as script_dir, \
+ support.change_cwd(path=script_dir):
+ # Create invalid *.pyc as empty file
+ with open('asyncio.py', 'wb'):
+ pass
+ err = self.check_dash_m_failure('asyncio.py')
+ self.assertIn(b"Try using 'asyncio' instead "
+ b"of 'asyncio.py' as the module name", err)
+
def test_dash_m_init_traceback(self):
# These were wrapped in an ImportError and tracebacks were
# suppressed; see Issue 14285