""" Class to wrap a test to use with unittest framework."""
import tests.selection_syntax as selection_syntax
SyntaxTestClasses = [selection_syntax.SelectionSyntaxTest]
PYVER = str(sys.version_info[0]) + "." + str(sys.version_info[1])
AIPS_DIR = os.environ["CASAPATH"].split()[0]
DATA_DIR = AIPS_DIR+'/data'
SCRIPT_REPOS=AIPS_DIR + "/" + os.environ["CASAPATH"].split()[1] + '/lib/python' + PYVER + '/tests/'
if not os.access(SCRIPT_REPOS, os.F_OK):
if os.access(AIPS_DIR+'/lib64', os.F_OK):
SCRIPT_REPOS = AIPS_DIR+'/lib64/python' + PYVER + '/tests/'
elif os.access(AIPS_DIR+'/lib', os.F_OK):
SCRIPT_REPOS = AIPS_DIR+'/lib/python' + PYVER + '/tests/'
SCRIPT_REPOS = AIPS_DIR+'/Resources/python/tests/'
def __init__(self, name):
raise Exception, "Cannot find test %s"%self.tname
def __init__(self,testname=''):
"""Take the name of a test file (without .py), wrap it and run"""
self.workdir = testname+'_work'
self.scriptdir = SCRIPT_REPOS
self.datadir = [DATA_DIR]
'''Name of test for FunctionTestCase'''
return 'Test '+self.testname
"""Copy data files to local working directory"""
dataFiles = self.dataFiles
print 'Searching for input data in %s'%(self.datadir)
for datafile in dataFiles:
file = self.locatedata(datafile, self.datadir)
os.system('rm -rf '+ self.workdir+'/'+datafile)
shutil.copytree(file, self.workdir+'/'+datafile)
if(os.path.isfile(file)):
shutil.copy(file, self.workdir+'/'+datafile)
"""Remove data files from working directory"""
dataFiles = self.dataFiles
for datafile in dataFiles:
file = self.workdir+'/'+datafile
os.system('rm -rf ' + file)
print '-------------- Unit Test for %s ---------------'%self.testname
"""Wrap a script using unittest"""
testscript = self.searchscript(self.testname, self.scriptdir)
self.workdir = os.getcwd()