summaryrefslogtreecommitdiff
path: root/Lib/test/test_subprocess.py
diff options
context:
space:
mode:
authorBrett Cannon <bcannon@gmail.com>2008-05-26 19:04:21 +0000
committerBrett Cannon <bcannon@gmail.com>2008-05-26 19:04:21 +0000
commita23810f86a53e394936b38ed9c6104fe2cc592cf (patch)
treef39d39741d348f914c151484fce95af2b33b295f /Lib/test/test_subprocess.py
parent35af8d4218138e74f37a083b7e3c8abd4c0f1c11 (diff)
downloadcpython-git-a23810f86a53e394936b38ed9c6104fe2cc592cf.tar.gz
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 3f877f2008..c9a3e1b698 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()