X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/c162a42573cdce83a35c54e630622544404012f7..dffb8b5eccb3af901512effe562a8b8944b14b89:/sdk/python/tests/test_arvfile.py diff --git a/sdk/python/tests/test_arvfile.py b/sdk/python/tests/test_arvfile.py index 3bba841b6d..1701aa43ca 100644 --- a/sdk/python/tests/test_arvfile.py +++ b/sdk/python/tests/test_arvfile.py @@ -440,20 +440,25 @@ class ArvadosFileReaderTestCase(StreamFileReaderTestCase): af = ArvadosFile(ArvadosFileReaderTestCase.MockParent(blocks, nocache), stream=stream, segments=[Range(1, 0, 3), Range(6, 3, 3), Range(11, 6, 3)]) return ArvadosFileReader(af, "count.txt") - def test_read_returns_first_block(self): - # read() calls will be aligned on block boundaries - see #3663. + def test_read_block_crossing_behavior(self): + # read() needs to return all the data requested if possible, even if it + # crosses uncached blocks: https://arvados.org/issues/5856 sfile = self.make_count_reader(nocache=True) - self.assertEqual('123', sfile.read(10)) + self.assertEqual('12345678', sfile.read(8)) def test_successive_reads(self): + # Override StreamFileReaderTestCase.test_successive_reads sfile = self.make_count_reader(nocache=True) - for expect in ['123', '456', '789', '']: - self.assertEqual(expect, sfile.read(10)) + self.assertEqual('1234', sfile.read(4)) + self.assertEqual('5678', sfile.read(4)) + self.assertEqual('9', sfile.read(4)) + self.assertEqual('', sfile.read(4)) def test_tell_after_block_read(self): + # Override StreamFileReaderTestCase.test_tell_after_block_read sfile = self.make_count_reader(nocache=True) - sfile.read(5) - self.assertEqual(3, sfile.tell()) + self.assertEqual('12345678', sfile.read(8)) + self.assertEqual(8, sfile.tell()) def test_prefetch(self): keep = ArvadosFileWriterTestCase.MockKeep({"2e9ec317e197819358fbc43afca7d837+8": "01234567", "e8dc4081b13434b45189a720b77b6818+8": "abcdefgh"})