def testRun(self, start, profile, runner, errs=[]): with helpers.log2str(): pp = PyPPL({ '_log': { 'file': None }, 'profile': { 'ppldir': self.testdir, 'runner': runner } }) import sys pp.start(start) argv = sys.argv sys.argv = [sys.argv[0]] helpers.log2sys() with helpers.log2str(levels='all') as (out, err): pp.run(profile) sys.argv = argv for s in start: self.assertEqual(s.runner, runner) stderr = err.getvalue() for err in errs: self.assertIn(err, stderr) stderr = stderr[(stderr.find(err) + len(err)):]
def test_run_noprofile(pset, tmp_path): pset.p14.props.origin = 'pOrig' for p in pset.values(): p.input = {'a': [1]} p.output = 'a:var:{{i.a}}' ppl = PyPPL({ 'default': { 'ppldir': tmp_path / 'test_run_noprofile' } }).start(pset.p14, pset.p15) ppl.run() assert pset.p14.ppldir == tmp_path / 'test_run_noprofile'
def test_run(pset, caplog, tmp_path): p1 = Proc() p2 = Proc() p2.depends = p1 pset.p14.props.origin = 'pOrig' for p in pset.values(): p.input = {'a': [1]} p.output = 'a:var:{{i.a}}' ppl = PyPPL({ 'default': { 'ppldir': tmp_path / 'test_run_ppldir' } }).start(pset.p14, pset.p15) ppl.run({'ppldir': tmp_path / 'test_run_ppldir2'}) # see if we have the right depends assert 'p14: START => p14 => [p16]' in caplog.text assert 'p15: START => p15 => [p16]' in caplog.text assert 'p16: [p14, p15] => p16 => [p17, p18]' in caplog.text assert 'p18: [p16] => p18 => [p17]' in caplog.text assert 'p17: [p16, p18] => p17 => [p20, p19]' in caplog.text assert 'p19: [p17] => p19 => END' in caplog.text assert 'p20: [p17] => p20 => END' in caplog.text #assert "p2 won't run as path can't be reached: p2 <- p1" in caplog.text assert pset.p14.ppldir == tmp_path / 'test_run_ppldir2'