diff options
Diffstat (limited to 'Lib/test')
-rw-r--r-- | Lib/test/test_import.py | 85 |
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] |