summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_import.py
diff options
context:
space:
mode:
authorTim Peters <tim.peters@gmail.com>2001-08-04 08:12:36 (GMT)
committerTim Peters <tim.peters@gmail.com>2001-08-04 08:12:36 (GMT)
commitc1731373914622dcaa4de259b96ec44d490b5e2c (patch)
treee6fc3dc8c57669055ce2f43b56ac02f4b3534796 /Lib/test/test_import.py
parent289898cdbb1d4526ce45e600ed2843a14d1feb0d (diff)
downloadcpython-c1731373914622dcaa4de259b96ec44d490b5e2c.zip
cpython-c1731373914622dcaa4de259b96ec44d490b5e2c.tar.gz
cpython-c1731373914622dcaa4de259b96ec44d490b5e2c.tar.bz2
Derived from SF patch #446899 Permit import of .pyw under Windows, from
David Bolen.
Diffstat (limited to 'Lib/test/test_import.py')
-rw-r--r--Lib/test/test_import.py85
1 files changed, 46 insertions, 39 deletions
diff --git a/Lib/test/test_import.py b/Lib/test/test_import.py
index d053609..b2e3fb6 100644
--- a/Lib/test/test_import.py
+++ b/Lib/test/test_import.py
@@ -16,49 +16,56 @@ else:
# Another brief digression to test the accuracy of manifest float constants.
import double_const # don't blink -- that *was* the test
-sys.path.insert(0, os.curdir)
-
-source = TESTFN + ".py"
-pyo = TESTFN + ".pyo"
-if sys.platform.startswith('java'):
- pyc = TESTFN + "$py.class"
-else:
- pyc = TESTFN + ".pyc"
+def test_with_extension(ext): # ext normally ".py"; perhaps ".pyw"
+ source = TESTFN + ext
+ pyo = TESTFN + ".pyo"
+ if sys.platform.startswith('java'):
+ pyc = TESTFN + "$py.class"
+ else:
+ pyc = TESTFN + ".pyc"
-f = open(source, "w")
-print >> f, "# This will test Python's ability to import a .py file"
-a = random.randrange(1000)
-b = random.randrange(1000)
-print >> f, "a =", a
-print >> f, "b =", b
-f.close()
+ f = open(source, "w")
+ print >> f, "# This tests Python's ability to import a", ext, "file."
+ a = random.randrange(1000)
+ b = random.randrange(1000)
+ print >> f, "a =", a
+ print >> f, "b =", b
+ f.close()
-try:
try:
- mod = __import__(TESTFN)
- except ImportError, err:
- raise ValueError, "import from .py failed: %s" % err
+ try:
+ mod = __import__(TESTFN)
+ except ImportError, err:
+ raise ValueError("import from %s failed: %s" % (ext, err))
- if mod.a != a or mod.b != b:
- print a, "!=", mod.a
- print b, "!=", mod.b
- raise ValueError, "module loaded (%s) but contents invalid" % mod
-finally:
- os.unlink(source)
+ if mod.a != a or mod.b != b:
+ print a, "!=", mod.a
+ print b, "!=", mod.b
+ raise ValueError("module loaded (%s) but contents invalid" % mod)
+ finally:
+ os.unlink(source)
-try:
try:
- reload(mod)
- except ImportError, err:
- raise ValueError, "import from .pyc/.pyo failed: %s" % err
-finally:
- try:
- os.unlink(pyc)
- except os.error:
- pass
- try:
- os.unlink(pyo)
- except os.error:
- pass
+ try:
+ reload(mod)
+ except ImportError, err:
+ raise ValueError("import from .pyc/.pyo failed: %s" % err)
+ finally:
+ try:
+ os.unlink(pyc)
+ except os.error:
+ pass
+ try:
+ os.unlink(pyo)
+ except os.error:
+ pass
+ del sys.modules[TESTFN]
-del sys.path[0]
+sys.path.insert(0, os.curdir)
+try:
+ test_with_extension(".py")
+ if sys.platform.startswith("win"):
+ for ext in ".PY", ".Py", ".pY", ".pyw", ".PYW", ".pYw":
+ test_with_extension(ext)
+finally:
+ del sys.path[0]