@@ -2497,6 +2497,28 @@ def test_interleaved_read_write(self):
2497
2497
f .flush ()
2498
2498
self .assertEqual (raw .getvalue (), b'a2c' )
2499
2499
2500
+ def test_read1_after_write (self ):
2501
+ with self .BytesIO (b'abcdef' ) as raw :
2502
+ with self .tp (raw , 3 ) as f :
2503
+ f .write (b"1" )
2504
+ self .assertEqual (f .read1 (1 ), b'b' )
2505
+ f .flush ()
2506
+ self .assertEqual (raw .getvalue (), b'1bcdef' )
2507
+ with self .BytesIO (b'abcdef' ) as raw :
2508
+ with self .tp (raw , 3 ) as f :
2509
+ f .write (b"1" )
2510
+ self .assertEqual (f .read1 (), b'bcd' )
2511
+ f .flush ()
2512
+ self .assertEqual (raw .getvalue (), b'1bcdef' )
2513
+ with self .BytesIO (b'abcdef' ) as raw :
2514
+ with self .tp (raw , 3 ) as f :
2515
+ f .write (b"1" )
2516
+ # XXX: read(100) returns different numbers of bytes
2517
+ # in Python and C implementations.
2518
+ self .assertEqual (f .read1 (100 )[:3 ], b'bcd' )
2519
+ f .flush ()
2520
+ self .assertEqual (raw .getvalue (), b'1bcdef' )
2521
+
2500
2522
def test_interleaved_readline_write (self ):
2501
2523
with self .BytesIO (b'ab\n cdef\n g\n ' ) as raw :
2502
2524
with self .tp (raw ) as f :
@@ -2509,6 +2531,36 @@ def test_interleaved_readline_write(self):
2509
2531
f .flush ()
2510
2532
self .assertEqual (raw .getvalue (), b'1b\n 2def\n 3\n ' )
2511
2533
2534
+ def test_xxx (self ):
2535
+ with self .BytesIO (b'abcdefgh' ) as raw :
2536
+ with self .tp (raw ) as f :
2537
+ f .write (b'123' )
2538
+ self .assertEqual (f .read (), b'defgh' )
2539
+ f .write (b'456' )
2540
+ f .flush ()
2541
+ self .assertEqual (raw .getvalue (), b'123defgh456' )
2542
+ with self .BytesIO (b'abcdefgh' ) as raw :
2543
+ with self .tp (raw ) as f :
2544
+ f .write (b'123' )
2545
+ self .assertEqual (f .read (3 ), b'def' )
2546
+ f .write (b'456' )
2547
+ f .flush ()
2548
+ self .assertEqual (raw .getvalue (), b'123def456' )
2549
+ with self .BytesIO (b'abcdefgh' ) as raw :
2550
+ with self .tp (raw ) as f :
2551
+ f .write (b'123' )
2552
+ self .assertEqual (f .read1 (), b'defgh' )
2553
+ f .write (b'456' )
2554
+ f .flush ()
2555
+ self .assertEqual (raw .getvalue (), b'123defgh456' )
2556
+ with self .BytesIO (b'abcdefgh' ) as raw :
2557
+ with self .tp (raw ) as f :
2558
+ f .write (b'123' )
2559
+ self .assertEqual (f .read1 (3 ), b'def' )
2560
+ f .write (b'456' )
2561
+ f .flush ()
2562
+ self .assertEqual (raw .getvalue (), b'123def456' )
2563
+
2512
2564
# You can't construct a BufferedRandom over a non-seekable stream.
2513
2565
test_unseekable = None
2514
2566
0 commit comments