|
16 | 16 | # Another brief digression to test the accuracy of manifest float constants. |
17 | 17 | import double_const # don't blink -- that *was* the test |
18 | 18 |
|
19 | | -sys.path.insert(0, os.curdir) |
20 | | - |
21 | | -source = TESTFN + ".py" |
22 | | -pyo = TESTFN + ".pyo" |
23 | | -if sys.platform.startswith('java'): |
24 | | - pyc = TESTFN + "$py.class" |
25 | | -else: |
26 | | - pyc = TESTFN + ".pyc" |
| 19 | +def test_with_extension(ext): # ext normally ".py"; perhaps ".pyw" |
| 20 | + source = TESTFN + ext |
| 21 | + pyo = TESTFN + ".pyo" |
| 22 | + if sys.platform.startswith('java'): |
| 23 | + pyc = TESTFN + "$py.class" |
| 24 | + else: |
| 25 | + pyc = TESTFN + ".pyc" |
27 | 26 |
|
28 | | -f = open(source, "w") |
29 | | -print >> f, "# This will test Python's ability to import a .py file" |
30 | | -a = random.randrange(1000) |
31 | | -b = random.randrange(1000) |
32 | | -print >> f, "a =", a |
33 | | -print >> f, "b =", b |
34 | | -f.close() |
| 27 | + f = open(source, "w") |
| 28 | + print >> f, "# This tests Python's ability to import a", ext, "file." |
| 29 | + a = random.randrange(1000) |
| 30 | + b = random.randrange(1000) |
| 31 | + print >> f, "a =", a |
| 32 | + print >> f, "b =", b |
| 33 | + f.close() |
35 | 34 |
|
36 | | -try: |
37 | 35 | try: |
38 | | - mod = __import__(TESTFN) |
39 | | - except ImportError, err: |
40 | | - raise ValueError, "import from .py failed: %s" % err |
| 36 | + try: |
| 37 | + mod = __import__(TESTFN) |
| 38 | + except ImportError, err: |
| 39 | + raise ValueError("import from %s failed: %s" % (ext, err)) |
41 | 40 |
|
42 | | - if mod.a != a or mod.b != b: |
43 | | - print a, "!=", mod.a |
44 | | - print b, "!=", mod.b |
45 | | - raise ValueError, "module loaded (%s) but contents invalid" % mod |
46 | | -finally: |
47 | | - os.unlink(source) |
| 41 | + if mod.a != a or mod.b != b: |
| 42 | + print a, "!=", mod.a |
| 43 | + print b, "!=", mod.b |
| 44 | + raise ValueError("module loaded (%s) but contents invalid" % mod) |
| 45 | + finally: |
| 46 | + os.unlink(source) |
48 | 47 |
|
49 | | -try: |
50 | 48 | try: |
51 | | - reload(mod) |
52 | | - except ImportError, err: |
53 | | - raise ValueError, "import from .pyc/.pyo failed: %s" % err |
54 | | -finally: |
55 | | - try: |
56 | | - os.unlink(pyc) |
57 | | - except os.error: |
58 | | - pass |
59 | | - try: |
60 | | - os.unlink(pyo) |
61 | | - except os.error: |
62 | | - pass |
| 49 | + try: |
| 50 | + reload(mod) |
| 51 | + except ImportError, err: |
| 52 | + raise ValueError("import from .pyc/.pyo failed: %s" % err) |
| 53 | + finally: |
| 54 | + try: |
| 55 | + os.unlink(pyc) |
| 56 | + except os.error: |
| 57 | + pass |
| 58 | + try: |
| 59 | + os.unlink(pyo) |
| 60 | + except os.error: |
| 61 | + pass |
| 62 | + del sys.modules[TESTFN] |
63 | 63 |
|
64 | | -del sys.path[0] |
| 64 | +sys.path.insert(0, os.curdir) |
| 65 | +try: |
| 66 | + test_with_extension(".py") |
| 67 | + if sys.platform.startswith("win"): |
| 68 | + for ext in ".PY", ".Py", ".pY", ".pyw", ".PYW", ".pYw": |
| 69 | + test_with_extension(ext) |
| 70 | +finally: |
| 71 | + del sys.path[0] |
0 commit comments