mirror of
https://github.com/python/cpython.git
synced 2025-07-29 06:05:00 +00:00
Patch #1676994: Refactor test_popen2 to use unittest.
This commit is contained in:
parent
dd2cf1cb84
commit
1b4145dbb3
2 changed files with 77 additions and 105 deletions
|
@ -200,45 +200,3 @@ else:
|
|||
return inst.fromchild, inst.tochild
|
||||
|
||||
__all__.extend(["Popen3", "Popen4"])
|
||||
|
||||
def _test():
|
||||
# When the test runs, there shouldn't be any open pipes
|
||||
_cleanup()
|
||||
assert not _active, "Active pipes when test starts " + repr([c.cmd for c in _active])
|
||||
cmd = "cat"
|
||||
teststr = "ab cd\n"
|
||||
if os.name == "nt":
|
||||
cmd = "more"
|
||||
# "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()
|
||||
print "testing popen2..."
|
||||
r, w = popen2(cmd)
|
||||
w.write(teststr)
|
||||
w.close()
|
||||
got = r.read()
|
||||
if got.strip() != expected:
|
||||
raise ValueError("wrote %r read %r" % (teststr, got))
|
||||
print "testing popen3..."
|
||||
try:
|
||||
r, w, e = popen3([cmd])
|
||||
except:
|
||||
r, w, e = popen3(cmd)
|
||||
w.write(teststr)
|
||||
w.close()
|
||||
got = r.read()
|
||||
if got.strip() != expected:
|
||||
raise ValueError("wrote %r read %r" % (teststr, got))
|
||||
got = e.read()
|
||||
if got:
|
||||
raise ValueError("unexpected %r on stderr" % (got,))
|
||||
for inst in _active[:]:
|
||||
inst.wait()
|
||||
_cleanup()
|
||||
if _active:
|
||||
raise ValueError("_active not empty")
|
||||
print "All OK"
|
||||
|
||||
if __name__ == '__main__':
|
||||
_test()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue