import os
from os import path
import sys
import pprint
import subprocess

from bioscons.slurm import SlurmEnvironment, check_srun

print(path.join(path.split(path.abspath('.'))[-1],
                str(call_stack[-1].sconscript)))

if not check_srun():
    print('--> srun not found; skipping tests requiring slurm')
    Return([])

vars = Variables()
vars.Add('out', 'output files', 'outdir')
vars.Add('test_script', None, path.abspath('test.sh'))
env = SlurmEnvironment(ENV=os.environ,
                       variables=vars,
                       use_cluster=True)

stdout1 = env.SRun(
    target='$out/stdout1.txt',
    source=None,
    action='$test_script > $TARGET',
    ncores=2,
    timelimit='2',
    )

stdout2 = env.Command(
    target='$out/stdout2.txt',
    source=None,
    action='$test_script > $TARGET'
    )

stdout3 = env.Command(
    target='$out/stdout3.txt',
    source=None,
    action='$test_script > $TARGET',
    use_cluster=False
    )

stdout4 = env.SAlloc(
    target='$out/stdout4.txt',
    source=None,
    action='$test_script > $TARGET',
    use_cluster=False,
    timelimit='3',
    ncores=2
    )

# Test quoting
stdout5 = env.Command(target='$out/stdout5.txt',
        source=None,
        action='echo "hostname: `hostname`" && env > $TARGET')

Depends([stdout1, stdout2, stdout3, stdout4, stdout5], env['test_script'])
Return('stdout1', 'stdout2', 'stdout3', 'stdout4', 'stdout5')
