1 new commit in py: https://bitbucket.org/hpk42/py/commits/f7c2b8011d27/ Changeset: f7c2b8011d27 User: hpk42 Date: 2014-03-26 18:29:53 Summary: ForkedFunc now opens unbuffered stdout/stderr FDs (helps to see output/err from a dying process) Affected #: 5 files
diff -r 978558572564d033591cc73c3426ee1b68fa62ca -r f7c2b8011d273c2f69872b662c6b5765356827a5 CHANGELOG --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,9 @@ +1.4.X +================================================== + +- ForkedFunc now opens unbuffered stdout/stderr FDs + (helps to see output/err from a dying process) + 1.4.20 ================================================== diff -r 978558572564d033591cc73c3426ee1b68fa62ca -r f7c2b8011d273c2f69872b662c6b5765356827a5 py/__init__.py --- a/py/__init__.py +++ b/py/__init__.py @@ -8,7 +8,7 @@ (c) Holger Krekel and others, 2004-2013 """ -__version__ = '1.4.20' +__version__ = '1.4.21.dev1' from py import _apipkg diff -r 978558572564d033591cc73c3426ee1b68fa62ca -r f7c2b8011d273c2f69872b662c6b5765356827a5 py/_process/forkedfunc.py --- a/py/_process/forkedfunc.py +++ b/py/_process/forkedfunc.py @@ -36,13 +36,11 @@ def _child(self, nice_level): # right now we need to call a function, but first we need to # map all IO that might happen - # make sure sys.stdout points to file descriptor one - sys.stdout = stdout = self.STDOUT.open('w') - sys.stdout.flush() + sys.stdout = stdout = open(str(self.STDOUT), "w", 0) fdstdout = stdout.fileno() if fdstdout != 1: os.dup2(fdstdout, 1) - sys.stderr = stderr = self.STDERR.open('w') + sys.stderr = stderr = open(str(self.STDERR), "w", 0) fdstderr = stderr.fileno() if fdstderr != 2: os.dup2(fdstderr, 2) diff -r 978558572564d033591cc73c3426ee1b68fa62ca -r f7c2b8011d273c2f69872b662c6b5765356827a5 setup.py --- a/setup.py +++ b/setup.py @@ -7,7 +7,7 @@ name='py', description='library with cross-python path, ini-parsing, io, code, log facilities', long_description = open('README.txt').read(), - version='1.4.20', + version='1.4.21.dev1', url='http://pylib.readthedocs.org/', license='MIT license', platforms=['unix', 'linux', 'osx', 'cygwin', 'win32'], diff -r 978558572564d033591cc73c3426ee1b68fa62ca -r f7c2b8011d273c2f69872b662c6b5765356827a5 testing/process/test_forkedfunc.py --- a/testing/process/test_forkedfunc.py +++ b/testing/process/test_forkedfunc.py @@ -50,6 +50,12 @@ assert result.signal == 0 assert result.retval == 2 +def test_forkedfunc_on_fds_output(): + result = py.process.ForkedFunc(boxf3).waitfinish() + assert result.signal == 11 + assert result.out == "s" + + def test_forkedfunc_signal(): result = py.process.ForkedFunc(boxseg).waitfinish() assert result.retval is None @@ -120,6 +126,10 @@ os.write(2, "someerr".encode('ascii')) return 2 +def boxf3(): + os.write(1, "s".encode('ascii')) + os.kill(os.getpid(), 11) + def boxseg(): os.kill(os.getpid(), 11) Repository URL: https://bitbucket.org/hpk42/py/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. _______________________________________________ pytest-commit mailing list pytest-commit@python.org https://mail.python.org/mailman/listinfo/pytest-commit