annotate Lib/test/test_support.py @ 4566:6403c94de50d legacy-trunk

Added safeguard against failure in __del__.
author Guido van Rossum <guido@python.org>
date Wed, 27 Nov 1996 19:39:58 +0000
parents 675a02820d66
children a2fd80eed27f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
653
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1 # Python test set -- supporting definitions.
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
3 TestFailed = 'test_support -- test failed' # Exception
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
4
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
5 def unload(name):
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
6 import sys
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
7 try:
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
8 del sys.modules[name]
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
9 except KeyError:
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
10 pass
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
11
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
12 def forget(modname):
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
13 unload(modname)
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
14 import sys, os
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
15 for dirname in sys.path:
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
16 try:
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
17 os.unlink(os.path.join(dirname, modname + '.pyc'))
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
18 except os.error:
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
19 pass
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
20
1197
675a02820d66 * os.py: _exit doesn't exist in all variations of posix
Guido van Rossum <guido@python.org>
parents: 653
diff changeset
21 FUZZ = 1e-6
675a02820d66 * os.py: _exit doesn't exist in all variations of posix
Guido van Rossum <guido@python.org>
parents: 653
diff changeset
22
675a02820d66 * os.py: _exit doesn't exist in all variations of posix
Guido van Rossum <guido@python.org>
parents: 653
diff changeset
23 def fcmp(x, y): # fuzzy comparison function
675a02820d66 * os.py: _exit doesn't exist in all variations of posix
Guido van Rossum <guido@python.org>
parents: 653
diff changeset
24 if type(x) == type(0.0) or type(y) == type(0.0):
675a02820d66 * os.py: _exit doesn't exist in all variations of posix
Guido van Rossum <guido@python.org>
parents: 653
diff changeset
25 try:
675a02820d66 * os.py: _exit doesn't exist in all variations of posix
Guido van Rossum <guido@python.org>
parents: 653
diff changeset
26 x, y = coerce(x, y)
675a02820d66 * os.py: _exit doesn't exist in all variations of posix
Guido van Rossum <guido@python.org>
parents: 653
diff changeset
27 fuzz = (abs(x) + abs(y)) * FUZZ
675a02820d66 * os.py: _exit doesn't exist in all variations of posix
Guido van Rossum <guido@python.org>
parents: 653
diff changeset
28 if abs(x-y) <= fuzz:
675a02820d66 * os.py: _exit doesn't exist in all variations of posix
Guido van Rossum <guido@python.org>
parents: 653
diff changeset
29 return 0
675a02820d66 * os.py: _exit doesn't exist in all variations of posix
Guido van Rossum <guido@python.org>
parents: 653
diff changeset
30 except:
675a02820d66 * os.py: _exit doesn't exist in all variations of posix
Guido van Rossum <guido@python.org>
parents: 653
diff changeset
31 pass
675a02820d66 * os.py: _exit doesn't exist in all variations of posix
Guido van Rossum <guido@python.org>
parents: 653
diff changeset
32 elif type(x) == type(y) and type(x) in (type(()), type([])):
675a02820d66 * os.py: _exit doesn't exist in all variations of posix
Guido van Rossum <guido@python.org>
parents: 653
diff changeset
33 for i in range(min(len(x), len(y))):
675a02820d66 * os.py: _exit doesn't exist in all variations of posix
Guido van Rossum <guido@python.org>
parents: 653
diff changeset
34 outcome = fcmp(x[i], y[i])
675a02820d66 * os.py: _exit doesn't exist in all variations of posix
Guido van Rossum <guido@python.org>
parents: 653
diff changeset
35 if outcome <> 0:
675a02820d66 * os.py: _exit doesn't exist in all variations of posix
Guido van Rossum <guido@python.org>
parents: 653
diff changeset
36 return outcome
675a02820d66 * os.py: _exit doesn't exist in all variations of posix
Guido van Rossum <guido@python.org>
parents: 653
diff changeset
37 return cmp(len(x), len(y))
675a02820d66 * os.py: _exit doesn't exist in all variations of posix
Guido van Rossum <guido@python.org>
parents: 653
diff changeset
38 return cmp(x, y)
675a02820d66 * os.py: _exit doesn't exist in all variations of posix
Guido van Rossum <guido@python.org>
parents: 653
diff changeset
39
653
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
40 TESTFN = '@test' # Filename used for testing
74942ec70430 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
41 from os import unlink