summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_subprocess.py
diff options
context:
space:
mode:
authorBrett Cannon <bcannon@gmail.com>2008-05-26 19:04:21 (GMT)
committerBrett Cannon <bcannon@gmail.com>2008-05-26 19:04:21 (GMT)
commita23810f86a53e394936b38ed9c6104fe2cc592cf (patch)
treef39d39741d348f914c151484fce95af2b33b295f /Lib/test/test_subprocess.py
parent35af8d4218138e74f37a083b7e3c8abd4c0f1c11 (diff)
downloadcpython-a23810f86a53e394936b38ed9c6104fe2cc592cf.zip
cpython-a23810f86a53e394936b38ed9c6104fe2cc592cf.tar.gz
cpython-a23810f86a53e394936b38ed9c6104fe2cc592cf.tar.bz2
The commands module has been removed. The getoutput() and getstatusoutput()
functions have been added to the subprocess module. The fixer for this still needs to be written and proper Py3K deprecation warnings for the functions that didn't make the transition need to be done in 2.6. This is all part of trying to close issue #2872.
Diffstat (limited to 'Lib/test/test_subprocess.py')
-rw-r--r--Lib/test/test_subprocess.py34
1 files changed, 30 insertions, 4 deletions
diff --git a/Lib/test/test_subprocess.py b/Lib/test/test_subprocess.py
index 3f877f2..c9a3e1b 100644
--- a/Lib/test/test_subprocess.py
+++ b/Lib/test/test_subprocess.py
@@ -702,10 +702,36 @@ class ProcessTestCase(unittest.TestCase):
p.terminate()
self.assertNotEqual(p.wait(), 0)
+class CommandTests(unittest.TestCase):
+# The module says:
+# "NB This only works (and is only relevant) for UNIX."
+#
+# Actually, getoutput should work on any platform with an os.popen, but
+# I'll take the comment as given, and skip this suite.
+ if os.name == 'posix':
+
+ def test_getoutput(self):
+ self.assertEquals(subprocess.getoutput('echo xyzzy'), 'xyzzy')
+ self.assertEquals(subprocess.getstatusoutput('echo xyzzy'),
+ (0, 'xyzzy'))
+
+ # we use mkdtemp in the next line to create an empty directory
+ # under our exclusive control; from that, we can invent a pathname
+ # that we _know_ won't exist. This is guaranteed to fail.
+ dir = None
+ try:
+ dir = tempfile.mkdtemp()
+ name = os.path.join(dir, "foo")
+
+ status, output = subprocess.getstatusoutput('cat ' + name)
+ self.assertNotEquals(status, 0)
+ finally:
+ if dir is not None:
+ os.rmdir(dir)
+
def test_main():
- support.run_unittest(ProcessTestCase)
- if hasattr(support, "reap_children"):
- support.reap_children()
+ support.run_unittest(ProcessTestCase, CommandTests)
+ support.reap_children()
if __name__ == "__main__":
- unittest.main() # XXX test_main()
+ test_main()