@retry_method
def write(self, data, num_retries=None):
if self.mode[0] == "a":
- self.arvadosfile.writeto(self.size(), data, num_retries)
- else:
- self.arvadosfile.writeto(self._filepos, data, num_retries)
- self._filepos += len(data)
+ self._filepos = self.size()
+ self.arvadosfile.writeto(self._filepos, data, num_retries)
+ self._filepos += len(data)
return len(data)
@_FileLikeObjectBase._before_close
c = Collection('. 781e5e245d69b566979b86e28d23f2c7+10 0:10:count.txt\n', keep_client=keep)
writer = c.open("count.txt", "ab+")
self.assertEqual(writer.read(20), b"0123456789")
- writer.seek(0, os.SEEK_SET)
+ writer.seek(0, os.SEEK_SET)
writer.write("hello")
- self.assertEqual(writer.read(20), b"0123456789hello")
+ self.assertEqual(writer.read(), b"")
+ writer.seek(-5, os.SEEK_CUR)
+ self.assertEqual(writer.read(3), b"hel")
+ self.assertEqual(writer.read(), b"lo")
writer.seek(0, os.SEEK_SET)
+ self.assertEqual(writer.read(), b"0123456789hello")
+ writer.seek(0)
writer.write("world")
- self.assertEqual(writer.read(20), b"0123456789helloworld")
+ self.assertEqual(writer.read(), b"")
+ writer.seek(0)
+ self.assertEqual(writer.read(), b"0123456789helloworld")
self.assertEqual(". 781e5e245d69b566979b86e28d23f2c7+10 fc5e038d38a57032085441e7fe7010b0+10 0:20:count.txt\n", c.portable_manifest_text())