@@ -2403,6 +2403,28 @@ def test_interleaved_read_write(self):
2403
2403
f .flush ()
2404
2404
self .assertEqual (raw .getvalue (), b'a2c' )
2405
2405
2406
+ def test_read1_after_write (self ):
2407
+ with self .BytesIO (b'abcdef' ) as raw :
2408
+ with self .tp (raw , 3 ) as f :
2409
+ f .write (b"1" )
2410
+ self .assertEqual (f .read1 (1 ), b'b' )
2411
+ f .flush ()
2412
+ self .assertEqual (raw .getvalue (), b'1bcdef' )
2413
+ with self .BytesIO (b'abcdef' ) as raw :
2414
+ with self .tp (raw , 3 ) as f :
2415
+ f .write (b"1" )
2416
+ self .assertEqual (f .read1 (), b'bcd' )
2417
+ f .flush ()
2418
+ self .assertEqual (raw .getvalue (), b'1bcdef' )
2419
+ with self .BytesIO (b'abcdef' ) as raw :
2420
+ with self .tp (raw , 3 ) as f :
2421
+ f .write (b"1" )
2422
+ # XXX: read(100) returns different numbers of bytes
2423
+ # in Python and C implementations.
2424
+ self .assertEqual (f .read1 (100 )[:3 ], b'bcd' )
2425
+ f .flush ()
2426
+ self .assertEqual (raw .getvalue (), b'1bcdef' )
2427
+
2406
2428
def test_interleaved_readline_write (self ):
2407
2429
with self .BytesIO (b'ab\n cdef\n g\n ' ) as raw :
2408
2430
with self .tp (raw ) as f :
@@ -2415,6 +2437,36 @@ def test_interleaved_readline_write(self):
2415
2437
f .flush ()
2416
2438
self .assertEqual (raw .getvalue (), b'1b\n 2def\n 3\n ' )
2417
2439
2440
+ def test_xxx (self ):
2441
+ with self .BytesIO (b'abcdefgh' ) as raw :
2442
+ with self .tp (raw ) as f :
2443
+ f .write (b'123' )
2444
+ self .assertEqual (f .read (), b'defgh' )
2445
+ f .write (b'456' )
2446
+ f .flush ()
2447
+ self .assertEqual (raw .getvalue (), b'123defgh456' )
2448
+ with self .BytesIO (b'abcdefgh' ) as raw :
2449
+ with self .tp (raw ) as f :
2450
+ f .write (b'123' )
2451
+ self .assertEqual (f .read (3 ), b'def' )
2452
+ f .write (b'456' )
2453
+ f .flush ()
2454
+ self .assertEqual (raw .getvalue (), b'123def456' )
2455
+ with self .BytesIO (b'abcdefgh' ) as raw :
2456
+ with self .tp (raw ) as f :
2457
+ f .write (b'123' )
2458
+ self .assertEqual (f .read1 (), b'defgh' )
2459
+ f .write (b'456' )
2460
+ f .flush ()
2461
+ self .assertEqual (raw .getvalue (), b'123defgh456' )
2462
+ with self .BytesIO (b'abcdefgh' ) as raw :
2463
+ with self .tp (raw ) as f :
2464
+ f .write (b'123' )
2465
+ self .assertEqual (f .read1 (3 ), b'def' )
2466
+ f .write (b'456' )
2467
+ f .flush ()
2468
+ self .assertEqual (raw .getvalue (), b'123def456' )
2469
+
2418
2470
# You can't construct a BufferedRandom over a non-seekable stream.
2419
2471
test_unseekable = None
2420
2472
0 commit comments