blob: 5419b5af7f7bae0afdc41c6ba6b8d1a73e772f1f [file] [log] [blame]
Tim Peterseba51302001-03-21 03:58:16 +00001from test_support import TESTFN, TestFailed
Tim Peters6d699ca2000-10-06 18:46:22 +00002
3import os
4import random
Guido van Rossumbd6f4fb2000-10-24 17:16:32 +00005import sys
6
Tim Peterseba51302001-03-21 03:58:16 +00007# Brief digression to test that import is case-sensitive: if we got this
8# far, we know for sure that "random" exists.
9try:
10 import RAnDoM
11except ImportError:
12 pass
13else:
14 raise TestFailed("import of RAnDoM should have failed (case mismatch)")
15
Tim Peters72f98e92001-05-08 15:19:57 +000016# Another brief digression to test the accuracy of manifest float constants.
17import double_const # don't blink -- that *was* the test
18
Guido van Rossumbd6f4fb2000-10-24 17:16:32 +000019sys.path.insert(0, os.curdir)
Tim Peters6d699ca2000-10-06 18:46:22 +000020
21source = TESTFN + ".py"
22pyc = TESTFN + ".pyc"
23pyo = TESTFN + ".pyo"
24
25f = open(source, "w")
26print >> f, "# This will test Python's ability to import a .py file"
27a = random.randrange(1000)
28b = random.randrange(1000)
29print >> f, "a =", a
30print >> f, "b =", b
31f.close()
32
33try:
34 try:
35 mod = __import__(TESTFN)
36 except ImportError, err:
37 raise ValueError, "import from .py failed: %s" % err
38
39 if mod.a != a or mod.b != b:
40 print a, "!=", mod.a
41 print b, "!=", mod.b
42 raise ValueError, "module loaded (%s) but contents invalid" % mod
43finally:
44 os.unlink(source)
45
46try:
47 try:
48 reload(mod)
49 except ImportError, err:
50 raise ValueError, "import from .pyc/.pyo failed: %s" % err
51finally:
52 try:
53 os.unlink(pyc)
54 except os.error:
55 pass
56 try:
57 os.unlink(pyo)
58 except os.error:
59 pass
Guido van Rossumbd6f4fb2000-10-24 17:16:32 +000060
61del sys.path[0]