File tree 2 files changed +12
-0
lines changed
2 files changed +12
-0
lines changed Original file line number Diff line number Diff line change @@ -252,6 +252,8 @@ def writelines(self, linelist):
252
252
self .write (data )
253
253
254
254
def __getattr__ (self , name ):
255
+ if name == 'name' :
256
+ return '{!r}' .format (self .buffer )
255
257
return getattr (object .__getattribute__ (self , "buffer" ), name )
256
258
257
259
Original file line number Diff line number Diff line change @@ -715,25 +715,35 @@ def test_dupfile(tmpfile):
715
715
assert nf not in flist
716
716
print (i , end = "" , file = nf )
717
717
flist .append (nf )
718
+
719
+ fname_open = flist [0 ].name
720
+ assert fname_open == repr (flist [0 ].buffer )
721
+
718
722
for i in range (5 ):
719
723
f = flist [i ]
720
724
f .close ()
725
+ fname_closed = flist [0 ].name
726
+ assert fname_closed == repr (flist [0 ].buffer )
727
+ assert fname_closed != fname_open
721
728
tmpfile .seek (0 )
722
729
s = tmpfile .read ()
723
730
assert "01234" in repr (s )
724
731
tmpfile .close ()
732
+ assert fname_closed == repr (flist [0 ].buffer )
725
733
726
734
def test_dupfile_on_bytesio ():
727
735
io = py .io .BytesIO ()
728
736
f = capture .safe_text_dupfile (io , "wb" )
729
737
f .write ("hello" )
730
738
assert io .getvalue () == b"hello"
739
+ assert f .name .startswith ('<_io.BytesIO object at' )
731
740
732
741
def test_dupfile_on_textio ():
733
742
io = py .io .TextIO ()
734
743
f = capture .safe_text_dupfile (io , "wb" )
735
744
f .write ("hello" )
736
745
assert io .getvalue () == "hello"
746
+ assert not hasattr (f , 'name' )
737
747
738
748
739
749
@contextlib .contextmanager
You can’t perform that action at this time.
0 commit comments