summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_popen2.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test/test_popen2.py')
-rw-r--r--Lib/test/test_popen2.py35
1 files changed, 34 insertions, 1 deletions
diff --git a/Lib/test/test_popen2.py b/Lib/test/test_popen2.py
index f6359ce..26ef9d9 100644
--- a/Lib/test/test_popen2.py
+++ b/Lib/test/test_popen2.py
@@ -3,12 +3,15 @@
Christian Tismer
"""
+import os
+
# popen2 contains its own testing routine
# which is especially useful to see if open files
# like stdin can be read successfully by a forked
# subprocess.
def main():
+ print "Test popen2 module:"
try:
from os import popen
except ImportError:
@@ -19,5 +22,35 @@ def main():
import popen2
popen2._test()
-main()
+def _test():
+ # same test as popen2._test(), but using the os.popen*() API
+ print "Testing os module:"
+ import popen2
+ cmd = "cat"
+ teststr = "abc\n"
+ resultstr = teststr
+ if os.name == "nt":
+ cmd = "more"
+ resultstr = "\n" + resultstr
+ print "testing popen2..."
+ w, r = os.popen2(cmd)
+ w.write(teststr)
+ w.close()
+ assert r.read() == resultstr
+ print "testing popen3..."
+ try:
+ w, r, e = os.popen3([cmd])
+ except:
+ w, r, e = os.popen3(cmd)
+ w.write(teststr)
+ w.close()
+ assert r.read() == resultstr
+ assert e.read() == ""
+ for inst in popen2._active[:]:
+ inst.wait()
+ assert not popen2._active
+ print "All OK"
+
+main()
+_test()