mirror of https://github.com/python/cpython
Merged revisions 73934 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k ........ r73934 | amaury.forgeotdarc | 2009-07-11 11:35:13 +0200 (sam., 11 juil. 2009) | 3 lines #6358: Merge r73933: Add basic tests for the return value of os.popen().close(). And fix the implementation to make these tests pass with py3k ........
This commit is contained in:
parent
1caf206ac9
commit
041b3baf53
|
@ -643,7 +643,13 @@ class _wrap_close:
|
|||
self._proc = proc
|
||||
def close(self):
|
||||
self._stream.close()
|
||||
return self._proc.wait() << 8 # Shift left to match old behavior
|
||||
returncode = self._proc.wait()
|
||||
if returncode == 0:
|
||||
return None
|
||||
if name == 'nt':
|
||||
return returncode
|
||||
else:
|
||||
return returncode << 8 # Shift left to match old behavior
|
||||
def __getattr__(self, name):
|
||||
return getattr(self._stream, name)
|
||||
def __iter__(self):
|
||||
|
|
|
@ -42,6 +42,13 @@ class PopenTest(unittest.TestCase):
|
|||
)
|
||||
support.reap_children()
|
||||
|
||||
def test_return_code(self):
|
||||
self.assertEqual(os.popen("exit 0").close(), None)
|
||||
if os.name == 'nt':
|
||||
self.assertEqual(os.popen("exit 42").close(), 42)
|
||||
else:
|
||||
self.assertEqual(os.popen("exit 42").close(), 42 << 8)
|
||||
|
||||
def test_main():
|
||||
support.run_unittest(PopenTest)
|
||||
|
||||
|
|
Loading…
Reference in New Issue