[SCons] Simplify handling of PYTHONPATH in the test suite

This commit is contained in:
Ray Speth 2018-09-15 11:55:46 -04:00
parent d01992c79c
commit 0f1da269fc
3 changed files with 17 additions and 39 deletions

View file

@ -111,7 +111,7 @@ if 'clean' in COMMAND_LINE_TARGETS:
if 'test-clean' in COMMAND_LINE_TARGETS:
removeDirectory('build/test')
removeDirectory('test/work')
removeDirectory('build/python_minimal')
removeDirectory('build/python_local')
# ******************************************************
# *** Set system-dependent defaults for some options ***
@ -1273,12 +1273,6 @@ if env['python_package'] in ('minimal', 'minimal-default'):
print('INFO: Building the minimal Python package for Python {0}'.format(python_version))
env['python_package'] = 'minimal'
if env['python_package'] != 'none':
# The directory within the source tree which will contain the Python module
env['pythonpath_build'] = Dir('build/python').abspath
if 'PYTHONPATH' in env['ENV']:
env['pythonpath_build'] += os.path.pathsep + env['ENV']['PYTHONPATH']
# Matlab Toolbox settings
if env['matlab_path'] != '' and env['matlab_toolbox'] == 'default':
env['matlab_toolbox'] = 'y'
@ -1780,11 +1774,11 @@ if any(target.startswith('test') for target in COMMAND_LINE_TARGETS):
if env['python_package'] == 'none':
# copy scripts from the full Cython module
test_py_int = env.Command('#build/python_minimal/cantera/__init__.py',
test_py_int = env.Command('#build/python_local/cantera/__init__.py',
'#interfaces/python_minimal/cantera/__init__.py',
Copy('$TARGET', '$SOURCE'))
for script in ['ctml_writer', 'ck2cti']:
s = env.Command('#build/python_minimal/cantera/{}.py'.format(script),
s = env.Command('#build/python_local/cantera/{}.py'.format(script),
'#interfaces/cython/cantera/{}.py'.format(script),
Copy('$TARGET', '$SOURCE'))
env.Depends(test_py_int, s)
@ -1792,6 +1786,11 @@ if any(target.startswith('test') for target in COMMAND_LINE_TARGETS):
env.Depends(env['test_results'], test_py_int)
env['python_cmd'] = sys.executable
env.PrependENVPath('PYTHONPATH', Dir('build/python_local').abspath)
else:
env.PrependENVPath('PYTHONPATH', Dir('build/python').abspath)
env['ENV']['PYTHON_CMD'] = env.subst('$python_cmd')
# Tests written using the gtest framework, the Python unittest module,
# or the Matlab xunit package.

View file

@ -238,20 +238,12 @@ def addMatlabTest(script, testName, dependencies=None, env_vars=()):
return run_program
if localenv['python_package'] in ('full', 'minimal'):
python_env_vars = {'PYTHONPATH': localenv['pythonpath_build'],
'PYTHON_CMD': localenv.subst('$python_cmd')}
else:
python_env_vars = {'PYTHONPATH': '../../build/python_minimal',
'PYTHON_CMD': localenv.subst('$python_cmd')}
# Instantiate tests
addTestProgram('general', 'general', env_vars=python_env_vars)
addTestProgram('thermo', 'thermo', env_vars=python_env_vars)
addTestProgram('equil', 'equil', env_vars=python_env_vars)
addTestProgram('kinetics', 'kinetics', env_vars=python_env_vars)
addTestProgram('transport', 'transport', env_vars=python_env_vars)
addTestProgram('general', 'general')
addTestProgram('thermo', 'thermo')
addTestProgram('equil', 'equil')
addTestProgram('kinetics', 'kinetics')
addTestProgram('transport', 'transport')
python_subtests = ['']
test_root = '#interfaces/cython/cantera/test'
@ -271,15 +263,13 @@ if localenv['python_package'] == 'full':
outfile=File('#test/work/python-results.txt').abspath,
dependencies=(localenv['python_module'] + localenv['python_extension'] +
mglob(localenv, test_root, 'py')),
env_vars={'PYTHONPATH': localenv['pythonpath_build']},
optional=bool(subset))
localenv.Alias('test-' + name, pyTest)
env['testNames'].append(name)
if localenv['matlab_toolbox'] == 'y':
matlabTest = addMatlabTest('runCanteraTests.m', 'matlab',
dependencies=mglob(localenv, 'matlab', 'm'),
env_vars=python_env_vars)
dependencies=mglob(localenv, 'matlab', 'm'))
localenv.Alias('test-matlab', matlabTest)
env['testNames'].append('matlab')

View file

@ -19,15 +19,6 @@ if localenv['OS'] == 'Linux':
else:
cantera_libs = localenv['cantera_libs']
if localenv['python_package'] in ('full', 'minimal'):
localenv['ENV']['PYTHONPATH'] = localenv['pythonpath_build']
localenv['ENV']['PYTHON_CMD'] = localenv.subst('$python_cmd')
haveConverters = True
else:
localenv['ENV']['PYTHONPATH'] = '../../build/python_minimal'
localenv['ENV']['PYTHON_CMD'] = localenv.subst('$python_cmd')
haveConverters = True
localenv['ENV']['CANTERA_DATA'] = (Dir('#build/data').abspath + os.pathsep +
Dir('#test/data').abspath)
@ -234,9 +225,8 @@ diamond = localenv.Program('diamondSurf/runDiamond',
diamond_name = diamond[0].name
Test('diamondSurf-xml', 'diamondSurf', diamond, 'runDiamond_blessed.out',
options='diamond_blessed.xml', artifacts=diamond_name)
if haveConverters:
Test('diamondSurf-cti', 'diamondSurf', diamond, 'runDiamond_blessed.out',
options='diamond.cti', artifacts=diamond_name)
Test('diamondSurf-cti', 'diamondSurf', diamond, 'runDiamond_blessed.out',
options='diamond.cti', artifacts=diamond_name)
CompileAndTest('dustyGasTransport', 'dustyGasTransport', 'dustyGasTransport',
'output_blessed.txt')
CompileAndTest('mixGasTransport',
@ -245,8 +235,7 @@ CompileAndTest('multiGasTransport',
'multiGasTransport', 'multiGasTransport', 'output_blessed.txt')
CompileAndTest('pureFluid', 'pureFluidTest', 'testPureWater', 'output_blessed.txt')
if haveConverters:
CompileAndTest('rankine_democxx', 'rankine_democxx', 'rankine', 'output_blessed.txt')
CompileAndTest('rankine_democxx', 'rankine_democxx', 'rankine', 'output_blessed.txt')
CompileAndTest('silane_equil', 'silane_equil', 'silane_equi', 'output_blessed.txt')
CompileAndTest('stoichSolidKinetics', 'stoichSolidKinetics',
'stoichSolidKinetics', 'output_blessed.txt')