AppPkg/Applications/Python: Add Python 2.7.2 sources since the release of Python 2.7.3 made them unavailable from the python.org web site.
These files are a subset of the python-2.7.2.tgz distribution from python.org. Changed files from PyMod-2.7.2 have been copied into the corresponding directories of this tree, replacing the original files in the distribution. Signed-off-by: daryl.mcdaniel@intel.com git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13197 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
130
AppPkg/Applications/Python/Python-2.7.2/Lib/test/test_popen2.py
Normal file
130
AppPkg/Applications/Python/Python-2.7.2/Lib/test/test_popen2.py
Normal file
@@ -0,0 +1,130 @@
|
||||
#! /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()
|
Reference in New Issue
Block a user