Alexis D. avatar Alexis D. committed 358977e

Make PyPy handle $PYTHONUNBUFFERED environment variable

Comments (0)

Files changed (2)

pypy/interpreter/app_main.py

 ##            print '%40s: %s' % (key, options[key])
 ##        print '%40s: %s' % ("sys.argv", sys.argv)
 
+    if os.getenv('PYTHONUNBUFFERED'):
+        options['unbuffered'] = True
+
     return options
 
 def run_command_line(interactive,

pypy/interpreter/test2/test_app_main.py

         child.expect('789')    # expect to see it before the timeout hits
         child.sendline('X')
 
+    def test_pythonunbuffered(self):
+        os.environ['PYTHONUNBUFFERED'] = '1'
+        try:
+            path = getscript("""
+                import os
+                import sys
+                sys.stdout.write('abc')
+                os.read(0, 1)
+                """)
+            child = self.spawn([path])
+            child.expect('abc')
+            child.sendline('*')
+        finally:
+            del os.environ['PYTHONUNBUFFERED']
+
     def test_options_i_m(self):
         if sys.platform == "win32":
             skip("close_fds is not supported on Windows platforms")
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.