#!/usr/bin/env python import io import defl from defl import Assert, LogProfile, cl, log from defl.testing_ import Test, Tester, TestState tester = Tester(name=__file__) @tester.add() def test(): out = ['test 1', 'test 1', 'test 1'] outStr = '\n'.join(out) run = defl.RunCom(['echo', '-e', outStr]) Assert(run.out).eq(out) Assert(run.outStr).eq(outStr) @tester.add() def test(): lg = defl.Logger(defaultAnsiiEnabled=False, defaultLineInfoEnabled=False) io1 = io.StringIO() lg.setLevel('debug', io1) run = defl.RunCom(['echo', '-e', 'test2'], logOnRun=lg.debug, raiseOnFail=True) Assert(io1.getvalue()).eq('echo -e test2\n') @tester.add() def test(): run = defl.RunCom(['env'], pipe=(True, False)) var = [x.split('=')[0] for x in run.out] Assert(var).eq(defl.RunCom.DEFAULT_ENV_VARS) @tester.add() def test(): run = defl.RunCom('echo $a $SHELL', pipe=(True, False), env={'a': 'b', 'SHELL': 'TEST'}) Assert(run.out).eq(['b TEST']) log.info(tester.run()) tester.exitWithStatus() # parser = argparse.ArgumentParser(description='') # parser.add_argument('-z', '--log', default='debug') # ag = parser.parse_args() # ag, extraArgs = parser.parse_known_args() # log = defl.log.setLevel(ag.log) # Import in sub module : "log = defl.log" # log.debug('ARGV', defl.shlexQuoteList(sys.argv)) # @atexit.register # def on_exit(): # open('/tmp/.clip.txt', 'w').close() # def signal_handler(sig, frame): # global comRunning # log.debug('Cought signal') # log.debug('comRunning', varI=True) # if comRunning: # log.debug('killing com') # comRunning.kill(force=False) # log.debug('Com exit with', comRunning.status) # sys.exit() # signal.signal(signal.SIGINT, signal_handler) # comRunning = defl.RunCom(['sleep', 60], runNow=False) # comRunning.run(pipe=False)