def testExitCode(self): nopen = self.numOpenFiles() pl = Popen(("false",)) with self.assertRaisesRegex(ProcessException, "^process exited 1: false$"): pl.wait() for p in pl.procs: self.assertTrue(p.returncode == 1) self.commonChecks(nopen, pl, "^false >.+$", isRe=True)
def testRead(self): nopen = self.numOpenFiles() inf = self.getInputFile("simple1.txt") infGz = self.getOutputFile(".txt.gz") Pipeline(("gzip", "-c", inf), stdout=infGz).wait() pl = Popen(("gzip", "-dc"), "r", stdin=infGz) self.cpPlToFile(pl, ".out") pl.wait() self.diffExpected(".out") self.commonChecks(nopen, pl, "^gzip -dc <.*output/test_pipettor.PopenTests.testRead.txt.gz >.+$", isRe=True)
def testReadMult(self): nopen = self.numOpenFiles() inf = self.getInputFile("simple1.txt") pl = Popen((("gzip", "-1c"), ("gzip", "-dc"), ("wc",), ("sed", "-e", "s/ */\t/g")), "r", stdin=inf) self.cpPlToFile(pl, ".wc") pl.wait() self.diffExpected(".wc") self.commonChecks(nopen, pl, "^gzip -1c <.*tests/input/simple1.txt | gzip -dc | wc | sed -e 's/ \\*/ /g' >.+$", isRe=True)
def testWriteFile(self): nopen = self.numOpenFiles() outf = self.getOutputFile(".out") outfGz = self.getOutputFile(".out.gz") with open(outfGz, "w") as outfGzFh: pl = Popen(("gzip", "-1"), "w", stdout=outfGzFh) self.cpFileToPl("simple1.txt", pl) pl.wait() Pipeline(("zcat", outfGz), stdout=outf).wait() self.diffExpected(".out") self.commonChecks(nopen, pl, "gzip -1 <.* >.*output/test_pipettor.PopenTests.testWriteFile.out.gz", isRe=True)
def testWriteMult(self): nopen = self.numOpenFiles() outf = self.getOutputFile(".wc") # grr, BSD wc adds an extract space, so just convert to tabs pl = Popen((("gzip", "-1"), ("gzip", "-dc"), ("wc",), ("sed", "-e", "s/ */\t/g")), "w", stdout=outf) self.cpFileToPl("simple1.txt", pl) pl.wait() self.diffExpected(".wc") self.commonChecks(nopen, pl, "^gzip -1 <.+ | gzip -dc | wc | sed -e 's/ \\*/ /g' >.*output/test_pipettor.PopenTests.testWriteMult.wc$", isRe=True)
def testSigPipe(self): # test not reading all of pipe output nopen = self.numOpenFiles() pl = Popen([("yes",), ("true",)], "r") pl.wait() self.commonChecks(nopen, pl, "^yes | true >.+ 2>\\[DataReader\\]$", isRe=True)