[pypy-svn] pypy default: Forbid __import__('/path/to/module') which worked in Python2.5 by accident
amauryfa
commits-noreply at bitbucket.org
Wed Jan 26 19:09:28 CET 2011
Author: Amaury Forgeot d'Arc <amauryfa at gmail.com>
Branch:
Changeset: r41366:22e2836fb533
Date: 2011-01-26 15:42 +0100
http://bitbucket.org/pypy/pypy/changeset/22e2836fb533/
Log: Forbid __import__('/path/to/module') which worked in Python2.5 by
accident
diff --git a/pypy/module/imp/test/test_import.py b/pypy/module/imp/test/test_import.py
--- a/pypy/module/imp/test/test_import.py
+++ b/pypy/module/imp/test/test_import.py
@@ -189,6 +189,13 @@
def test_import_keywords(self):
__import__(name='sys', level=0)
+ def test_import_by_filename(self):
+ import pkg.a
+ filename = pkg.a.__file__
+ assert filename.endswith('.py')
+ exc = raises(ImportError, __import__, filename[:-3])
+ assert exc.value.message == "Import by filename is not supported."
+
def test_import_badcase(self):
def missing(name):
try:
diff --git a/pypy/module/imp/importing.py b/pypy/module/imp/importing.py
--- a/pypy/module/imp/importing.py
+++ b/pypy/module/imp/importing.py
@@ -226,6 +226,10 @@
def _absolute_import(space, modulename, baselevel, fromlist_w, tentative):
w = space.wrap
+ if '/' in modulename or '\\' in modulename:
+ raise OperationError(space.w_ImportError, space.wrap(
+ "Import by filename is not supported."))
+
w_mod = None
parts = modulename.split('.')
prefix = []
More information about the Pypy-commit
mailing list