File tree 3 files changed +16
-0
lines changed
3 files changed +16
-0
lines changed Original file line number Diff line number Diff line change @@ -254,6 +254,11 @@ def writelines(self, linelist):
254
254
data = '' .join (linelist )
255
255
self .write (data )
256
256
257
+ @property
258
+ def name (self ):
259
+ """Ensure that file.name is a string."""
260
+ return repr (self .buffer )
261
+
257
262
def __getattr__ (self , name ):
258
263
return getattr (object .__getattribute__ (self , "buffer" ), name )
259
264
Original file line number Diff line number Diff line change
1
+ capture: ensure that EncodedFile.name is a string.
Original file line number Diff line number Diff line change @@ -716,27 +716,37 @@ def test_dupfile(tmpfile):
716
716
assert nf not in flist
717
717
print (i , end = "" , file = nf )
718
718
flist .append (nf )
719
+
720
+ fname_open = flist [0 ].name
721
+ assert fname_open == repr (flist [0 ].buffer )
722
+
719
723
for i in range (5 ):
720
724
f = flist [i ]
721
725
f .close ()
726
+ fname_closed = flist [0 ].name
727
+ assert fname_closed == repr (flist [0 ].buffer )
728
+ assert fname_closed != fname_open
722
729
tmpfile .seek (0 )
723
730
s = tmpfile .read ()
724
731
assert "01234" in repr (s )
725
732
tmpfile .close ()
733
+ assert fname_closed == repr (flist [0 ].buffer )
726
734
727
735
728
736
def test_dupfile_on_bytesio ():
729
737
io = py .io .BytesIO ()
730
738
f = capture .safe_text_dupfile (io , "wb" )
731
739
f .write ("hello" )
732
740
assert io .getvalue () == b"hello"
741
+ assert 'BytesIO object' in f .name
733
742
734
743
735
744
def test_dupfile_on_textio ():
736
745
io = py .io .TextIO ()
737
746
f = capture .safe_text_dupfile (io , "wb" )
738
747
f .write ("hello" )
739
748
assert io .getvalue () == "hello"
749
+ assert not hasattr (f , 'name' )
740
750
741
751
742
752
@contextlib .contextmanager
You can’t perform that action at this time.
0 commit comments