summaryrefslogtreecommitdiff
path: root/lib/python2.7/test/test_popen2.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python2.7/test/test_popen2.py')
-rw-r--r--lib/python2.7/test/test_popen2.py130
1 files changed, 0 insertions, 130 deletions
diff --git a/lib/python2.7/test/test_popen2.py b/lib/python2.7/test/test_popen2.py
deleted file mode 100644
index ea41075..0000000
--- a/lib/python2.7/test/test_popen2.py
+++ /dev/null
@@ -1,130 +0,0 @@
-#! /usr/bin/env python
-"""Test script for popen2.py"""
-
-import warnings
-warnings.filterwarnings("ignore", ".*popen2 module is deprecated.*",
- DeprecationWarning)
-warnings.filterwarnings("ignore", "os\.popen. is deprecated.*",
- DeprecationWarning)
-
-import os
-import sys
-import unittest
-import popen2
-
-from test.test_support import run_unittest, reap_children
-
-if sys.platform[:4] == 'beos' or sys.platform[:6] == 'atheos':
- # Locks get messed up or something. Generally we're supposed
- # to avoid mixing "posix" fork & exec with native threads, and
- # they may be right about that after all.
- raise unittest.SkipTest("popen2() doesn't work on " + sys.platform)
-
-# if we don't have os.popen, check that
-# we have os.fork. if not, skip the test
-# (by raising an ImportError)
-try:
- from os import popen
- del popen
-except ImportError:
- from os import fork
- del fork
-
-class Popen2Test(unittest.TestCase):
- cmd = "cat"
- if os.name == "nt":
- cmd = "more"
- teststr = "ab cd\n"
- # "more" doesn't act the same way across Windows flavors,
- # sometimes adding an extra newline at the start or the
- # end. So we strip whitespace off both ends for comparison.
- expected = teststr.strip()
-
- def setUp(self):
- popen2._cleanup()
- # When the test runs, there shouldn't be any open pipes
- self.assertFalse(popen2._active, "Active pipes when test starts" +
- repr([c.cmd for c in popen2._active]))
-
- def tearDown(self):
- for inst in popen2._active:
- inst.wait()
- popen2._cleanup()
- self.assertFalse(popen2._active, "popen2._active not empty")
- # The os.popen*() API delegates to the subprocess module (on Unix)
- import subprocess
- for inst in subprocess._active:
- inst.wait()
- subprocess._cleanup()
- self.assertFalse(subprocess._active, "subprocess._active not empty")
- reap_children()
-
- def validate_output(self, teststr, expected_out, r, w, e=None):
- w.write(teststr)
- w.close()
- got = r.read()
- self.assertEqual(expected_out, got.strip(), "wrote %r read %r" %
- (teststr, got))
-
- if e is not None:
- got = e.read()
- self.assertFalse(got, "unexpected %r on stderr" % got)
-
- def test_popen2(self):
- r, w = popen2.popen2(self.cmd)
- self.validate_output(self.teststr, self.expected, r, w)
-
- def test_popen3(self):
- if os.name == 'posix':
- r, w, e = popen2.popen3([self.cmd])
- self.validate_output(self.teststr, self.expected, r, w, e)
-
- r, w, e = popen2.popen3(self.cmd)
- self.validate_output(self.teststr, self.expected, r, w, e)
-
- def test_os_popen2(self):
- # same test as test_popen2(), but using the os.popen*() API
- if os.name == 'posix':
- w, r = os.popen2([self.cmd])
- self.validate_output(self.teststr, self.expected, r, w)
-
- w, r = os.popen2(["echo", self.teststr])
- got = r.read()
- self.assertEqual(got, self.teststr + "\n")
-
- w, r = os.popen2(self.cmd)
- self.validate_output(self.teststr, self.expected, r, w)
-
- def test_os_popen3(self):
- # same test as test_popen3(), but using the os.popen*() API
- if os.name == 'posix':
- w, r, e = os.popen3([self.cmd])
- self.validate_output(self.teststr, self.expected, r, w, e)
-
- w, r, e = os.popen3(["echo", self.teststr])
- got = r.read()
- self.assertEqual(got, self.teststr + "\n")
- got = e.read()
- self.assertFalse(got, "unexpected %r on stderr" % got)
-
- w, r, e = os.popen3(self.cmd)
- self.validate_output(self.teststr, self.expected, r, w, e)
-
- def test_os_popen4(self):
- if os.name == 'posix':
- w, r = os.popen4([self.cmd])
- self.validate_output(self.teststr, self.expected, r, w)
-
- w, r = os.popen4(["echo", self.teststr])
- got = r.read()
- self.assertEqual(got, self.teststr + "\n")
-
- w, r = os.popen4(self.cmd)
- self.validate_output(self.teststr, self.expected, r, w)
-
-
-def test_main():
- run_unittest(Popen2Test)
-
-if __name__ == "__main__":
- test_main()