test_sup.py 1.14 KB
Newer Older
1 2 3 4
# Python test set -- supporting definitions.

TestFailed = 'test_support -- test failed'	# Exception

Guido van Rossum's avatar
Guido van Rossum committed
5 6
verbose = 1				# Flag set to 0 by regrtest.py

7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
def unload(name):
	import sys
	try:
		del sys.modules[name]
	except KeyError:
		pass

def forget(modname):
	unload(modname)
	import sys, os
	for dirname in sys.path:
		try:
			os.unlink(os.path.join(dirname, modname + '.pyc'))
		except os.error:
			pass

FUZZ = 1e-6

def fcmp(x, y): # fuzzy comparison function
	if type(x) == type(0.0) or type(y) == type(0.0):
		try:
			x, y = coerce(x, y)
			fuzz = (abs(x) + abs(y)) * FUZZ
			if abs(x-y) <= fuzz:
				return 0
		except:
			pass
	elif type(x) == type(y) and type(x) in (type(()), type([])):
		for i in range(min(len(x), len(y))):
			outcome = fcmp(x[i], y[i])
			if outcome <> 0:
				return outcome
		return cmp(len(x), len(y))
	return cmp(x, y)

TESTFN = '@test' # Filename used for testing
from os import unlink
Guido van Rossum's avatar
Guido van Rossum committed
44 45 46 47 48 49 50 51 52 53 54 55

def findfile(file, here=__file__):
	import os
	if os.path.isabs(file):
		return file
	import sys
	path = sys.path
	path = [os.path.dirname(here)] + path
	for dn in path:
		fn = os.path.join(dn, file)
		if os.path.exists(fn): return fn
	return file