def test_signal(self): if self.platform == 'win': raise SkipTest('Broken OS') proc = Subcommand((sys.executable, '-c', Commands.sleep, '10'), wait=False) try: proc.terminate() self.assertIsNone(proc.returncode, None) proc.wait() self.assertLess(proc.returncode, 0) self.assertEqual(proc.returncode, -15) finally: proc.close()
def test_kill(self): if self.platform == 'win': raise SkipTest('Broken OS') proc = Subcommand((sys.executable, '-c', Commands.sleep, '0.2'), wait=False) try: self.assertIsNone(os.kill(proc.proc.pid, 0)) proc.kill() rc = proc.wait() self.assertLess(rc, 0) self.assertEqual(rc, -9) self.assertRaises(OSError, os.kill, proc.proc.pid, 0) finally: proc.close()
def test_close(self): touchfile = self.dir + 'close.touch.txt' infile = self.dir + 'close.stdin.txt' outfile = self.dir + 'close.stdout.txt' errfile = self.dir + 'close.stderr.txt' infile.open('wt') # just create the file proc = Subcommand( (sys.executable, '-c', Commands.touch, str(touchfile)), stdin=str(infile), stdout=str(outfile), stderr=str(errfile), wait=False, ) self.assertFalse(proc.stdin.closed) self.assertFalse(proc.stdout.closed) self.assertFalse(proc.stderr.closed) proc.wait() self.assertTrue(proc.stdin.closed) self.assertFalse(proc.stdout.closed) self.assertFalse(proc.stderr.closed) proc.close() self.assertIsNone(proc.stdin) self.assertIsNone(proc.stdout) self.assertIsNone(proc.stderr)
def test_nowait(self): from time import sleep proc = Subcommand((sys.executable, '-c', Commands.sleep, '0.1'), wait=False) try: self.assertFalse(proc.poll()) sleep(0.2) self.assertTrue(proc.poll()) self.assertEqual(proc.returncode, 0) finally: proc.close() proc = Subcommand((sys.executable, '-c', Commands.sleep, '0.1'), wait=False) try: self.assertFalse(proc.poll()) rc = proc.wait() self.assertEqual(rc, proc.returncode) self.assertEqual(proc.returncode, 0) finally: proc.close()