def test_complex_job(): cmd = 'cut -hf --someflag {1,2,3||1,2}' jobs = [] files = [parser.File('file1', '1', '1'), parser.File('file2', '2', '2'), parser.File('file3', '3', '3'), parser.File('file4', '4', '4'), parser.File('file5', '5', '5')] paths=[] jobs = parser.parse_job(cmd, jobs, files, paths) cmd = 'python somescript -f {o:*.counts} {2,4||5}' jobs = parser.parse_job(cmd, jobs, files, paths) len(jobs).should.equal(4) jobs[0].raw_cmd.should.equal('cut -hf --someflag {in}') jobs[3].raw_cmd.should.equal('python somescript -f {out} {in}') jobs[1].depends_on.should.contain(jobs[0]) jobs[2].depends_on.should.contain(jobs[0]) jobs[2].depends_on.should.contain(jobs[1]) len(jobs[3].depends_on).should.equal(0)
def test_parse_job(): cmd = 'cut -hf --someflag {1,2,3||1,2||2,3,4}' jobs = [] files = [parser.File('file1', '1', '1'), parser.File('file2', '2', '2'), parser.File('file3', '3', '3'), parser.File('file4', '4', '4')] paths=[] jobs = parser.parse_job(cmd, jobs, files, paths) len(jobs).should.equal(3) jobs[0].raw_cmd.should.equal('cut -hf --someflag {in}') jobs[1].depends_on.should.contain(jobs[0]) jobs[2].depends_on.should.contain(jobs[0]) jobs[2].depends_on.should.contain(jobs[0]) jobs[2].depends_on.should.contain(jobs[1])