@@ -4913,10 +4913,20 @@ def testReadline(self):
4913
4913
# Performing file readline test
4914
4914
line = self .read_file .readline ()
4915
4915
self .assertEqual (line , self .read_msg )
4916
+ # Readline mode
4917
+ if self .bufsize == 1 and self .read_mode == "r" :
4918
+ self .assertTrue (self .read_file .line_buffering )
4916
4919
4917
4920
def _testReadline (self ):
4918
4921
self .write_file .write (self .write_msg )
4919
- self .write_file .flush ()
4922
+ # Readline mode: no need to flush
4923
+ if self .bufsize == 1 and self .write_mode == "w" :
4924
+ self .assertTrue (self .write_file .line_buffering )
4925
+ else :
4926
+ self .write_file .flush ()
4927
+ # Prevent garbage collection from flushing
4928
+ # until the server has finished
4929
+ self .assertTrue (self .serv_finished .wait (5.0 ))
4920
4930
4921
4931
def testCloseAfterMakefile (self ):
4922
4932
# The file returned by makefile should keep the socket open.
@@ -5072,11 +5082,6 @@ def _testWriteNonBlocking(self):
5072
5082
self .serv_skipped = "failed to saturate the socket buffer"
5073
5083
5074
5084
5075
- class LineBufferedFileObjectClassTestCase (FileObjectClassTestCase ):
5076
-
5077
- bufsize = 1 # Default-buffered for reading; line-buffered for writing
5078
-
5079
-
5080
5085
class SmallBufferedFileObjectClassTestCase (FileObjectClassTestCase ):
5081
5086
5082
5087
bufsize = 2 # Exercise the buffering code
@@ -5112,6 +5117,16 @@ class UnicodeReadWriteFileObjectClassTestCase(FileObjectClassTestCase):
5112
5117
newline = ''
5113
5118
5114
5119
5120
+ class UnicodeLineBufferedFileObjectClassTestCase (FileObjectClassTestCase ):
5121
+
5122
+ bufsize = 1 # Default-buffered for reading; line-buffered for writing
5123
+ read_mode = 'r'
5124
+ read_msg = MSG .decode ('utf-8' )
5125
+ write_mode = 'w'
5126
+ write_msg = MSG .decode ('utf-8' )
5127
+ newline = ''
5128
+
5129
+
5115
5130
class NetworkConnectionTest (object ):
5116
5131
"""Prove network connection."""
5117
5132
@@ -6649,11 +6664,11 @@ def test_main():
6649
6664
NonBlockingTCPTests ,
6650
6665
FileObjectClassTestCase ,
6651
6666
UnbufferedFileObjectClassTestCase ,
6652
- LineBufferedFileObjectClassTestCase ,
6653
6667
SmallBufferedFileObjectClassTestCase ,
6654
6668
UnicodeReadFileObjectClassTestCase ,
6655
6669
UnicodeWriteFileObjectClassTestCase ,
6656
6670
UnicodeReadWriteFileObjectClassTestCase ,
6671
+ UnicodeLineBufferedFileObjectClassTestCase ,
6657
6672
NetworkConnectionNoServer ,
6658
6673
NetworkConnectionAttributesTest ,
6659
6674
NetworkConnectionBehaviourTest ,
0 commit comments