@@ -195,7 +195,7 @@ def request_from_main_greenlet(self, force_refresh=False):
195
195
196
196
197
197
class FakeOutput (object ):
198
- def __init__ (self , coderunner , on_write , fileno = 1 ):
198
+ def __init__ (self , coderunner , on_write , real_fileobj ):
199
199
"""Fakes sys.stdout or sys.stderr
200
200
201
201
on_write should always take unicode
@@ -205,7 +205,7 @@ def __init__(self, coderunner, on_write, fileno=1):
205
205
"""
206
206
self .coderunner = coderunner
207
207
self .on_write = on_write
208
- self .real_fileno = fileno
208
+ self ._real_fileobj = real_fileobj
209
209
210
210
def write (self , s , * args , ** kwargs ):
211
211
if not py3 and isinstance (s , str ):
@@ -217,7 +217,7 @@ def write(self, s, *args, **kwargs):
217
217
# have a method called fileno. One example is pwntools. This
218
218
# is not a widespread issue, but is annoying.
219
219
def fileno (self ):
220
- return self .real_fileno
220
+ return self ._real_fileobj . fileno ()
221
221
222
222
def writelines (self , l ):
223
223
for s in l :
@@ -228,3 +228,7 @@ def flush(self):
228
228
229
229
def isatty (self ):
230
230
return True
231
+
232
+ @property
233
+ def encoding (self ):
234
+ return self ._real_fileobj .encoding
0 commit comments