| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 5901d92 commit 0c48c43
1 file changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -141,6 +141,9 @@ def test_truncate(self): | |||
| 141 | 141 | f.truncate(1) | |
| 142 | 142 | self.assertEqual(f.tell(), 0) # else pointer moved | |
| 143 | 143 | f.seek(0) | |
| 144 | + # Verify readall on a truncated file is well behaved. read() | ||
| 145 | + # without a size can be unbounded, this should get just the byte | ||
| 146 | + # that remains. | ||
| 144 | 147 | self.assertEqual(len(f.read()), 1) # else wasn't truncated | |
| 145 | 148 | ||
| 146 | 149 | def test_seekable(self): | |
@@ -151,6 +154,22 @@ def test_seekable(self): | |||
| 151 | 154 | f.seek(pos) | |
| 152 | 155 | self.assertTrue(f.seekable()) | |
| 153 | 156 | ||
| 157 | + @bigmemtest(size=size, memuse=2, dry_run=False) | ||
| 158 | + def test_seek_readall(self, _size): | ||
| 159 | + # Seek which doesn't change position should readall successfully. | ||
| 160 | + with self.open(TESTFN, 'rb') as f: | ||
| 161 | + self.assertEqual(f.seek(0, os.SEEK_CUR), 0) | ||
| 162 | + self.assertEqual(len(f.read()), size+1) | ||
| 163 | + | ||
| 164 | + # Seek which changes (or might change) position should readall | ||
| 165 | + # successfully. | ||
| 166 | + with self.open(TESTFN, 'rb') as f: | ||
| 167 | + self.assertEqual(f.seek(20, os.SEEK_SET), 20) | ||
| 168 | + self.assertEqual(len(f.read()), size-19) | ||
| 169 | + | ||
| 170 | + with self.open(TESTFN, 'rb') as f: | ||
| 171 | + self.assertEqual(f.seek(-3, os.SEEK_END), size - 2) | ||
| 172 | + self.assertEqual(len(f.read()), 3) | ||
| 154 | 173 | ||
| 155 | 174 | def skip_no_disk_space(path, required): | |
| 156 | 175 | def decorator(fun): | |
| Back | FazBrowse Home | New Git URL |
0 commit comments