process_stdinreader.py 857 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. # Copyright (c) Twisted Matrix Laboratories.
  2. # See LICENSE for details.
  3. """
  4. Script used by twisted.test.test_process on win32.
  5. """
  6. from __future__ import absolute_import, division
  7. import sys, os, msvcrt
  8. msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)
  9. msvcrt.setmode(sys.stderr.fileno(), os.O_BINARY)
  10. # We want to write bytes directly to the output, not text, because otherwise
  11. # newlines get mangled. Get the buffer if it is available.
  12. if hasattr(sys.stdout, "buffer"):
  13. stdout = sys.stdout.buffer
  14. else:
  15. stdout = sys.stdout
  16. if hasattr(sys.stderr, "buffer"):
  17. stderr = sys.stderr.buffer
  18. else:
  19. stderr = sys.stderr
  20. stdout.write(b"out\n")
  21. stdout.flush()
  22. stderr.write(b"err\n")
  23. stderr.flush()
  24. data = sys.stdin.read()
  25. stdout.write(data.encode('ascii'))
  26. stdout.write(b"\nout\n")
  27. stderr.write(b"err\n")
  28. sys.stdout.flush()
  29. sys.stderr.flush()