Exemplo n.º 1
0
  def testManyChunks(self):
    action = FakeAction()
    uploader = uploading.TransferStoreUploader(action, chunk_size=3)

    with temp.AutoTempFilePath() as temp_filepath:
      with open(temp_filepath, "w") as temp_file:
        temp_file.write("1234567890")

      blobdesc = uploader.UploadFilePath(temp_filepath)

      self.assertEqual(action.charged_bytes, 10)
      self.assertEqual(len(action.messages), 4)
      self.assertEqual(action.messages[0].item.data, zlib.compress("123"))
      self.assertEqual(action.messages[1].item.data, zlib.compress("456"))
      self.assertEqual(action.messages[2].item.data, zlib.compress("789"))
      self.assertEqual(action.messages[3].item.data, zlib.compress("0"))

      self.assertEqual(len(blobdesc.chunks), 4)
      self.assertEqual(blobdesc.chunk_size, 3)
      self.assertEqual(blobdesc.chunks[0].offset, 0)
      self.assertEqual(blobdesc.chunks[0].length, 3)
      self.assertEqual(blobdesc.chunks[0].digest, Sha256("123"))
      self.assertEqual(blobdesc.chunks[1].offset, 3)
      self.assertEqual(blobdesc.chunks[1].length, 3)
      self.assertEqual(blobdesc.chunks[1].digest, Sha256("456"))
      self.assertEqual(blobdesc.chunks[2].offset, 6)
      self.assertEqual(blobdesc.chunks[2].length, 3)
      self.assertEqual(blobdesc.chunks[2].digest, Sha256("789"))
      self.assertEqual(blobdesc.chunks[3].offset, 9)
      self.assertEqual(blobdesc.chunks[3].length, 1)
      self.assertEqual(blobdesc.chunks[3].digest, Sha256("0"))
Exemplo n.º 2
0
  def _UploadFilePath(self, fd, truncate):
    max_size = self._opts.max_size if truncate else None
    chunk_size = self._opts.chunk_size

    uploader = uploading.TransferStoreUploader(
        self._action, chunk_size=chunk_size)
    return uploader.UploadFile(fd, amount=max_size)
Exemplo n.º 3
0
  def testCustomOffset(self):
    action = FakeAction()
    uploader = uploading.TransferStoreUploader(action, chunk_size=2)

    with temp.AutoTempFilePath() as temp_filepath:
      with open(temp_filepath, "w") as temp_file:
        temp_file.write("0123456")

      blobdesc = uploader.UploadFilePath(temp_filepath, offset=2)

      self.assertEqual(action.charged_bytes, 5)
      self.assertEqual(len(action.messages), 3)
      self.assertEqual(action.messages[0].item.data, zlib.compress("23"))
      self.assertEqual(action.messages[1].item.data, zlib.compress("45"))
      self.assertEqual(action.messages[2].item.data, zlib.compress("6"))

      self.assertEqual(len(blobdesc.chunks), 3)
      self.assertEqual(blobdesc.chunk_size, 2)
      self.assertEqual(blobdesc.chunks[0].offset, 2)
      self.assertEqual(blobdesc.chunks[0].length, 2)
      self.assertEqual(blobdesc.chunks[0].digest, Sha256("23"))
      self.assertEqual(blobdesc.chunks[1].offset, 4)
      self.assertEqual(blobdesc.chunks[1].length, 2)
      self.assertEqual(blobdesc.chunks[1].digest, Sha256("45"))
      self.assertEqual(blobdesc.chunks[2].offset, 6)
      self.assertEqual(blobdesc.chunks[2].length, 1)
      self.assertEqual(blobdesc.chunks[2].digest, Sha256("6"))
Exemplo n.º 4
0
    def _UploadFilePath(self, filepath, truncate=False):
        max_size = self.opts.max_size if truncate else None
        chunk_size = self.opts.chunk_size

        uploader = uploading.TransferStoreUploader(self.flow,
                                                   chunk_size=chunk_size)
        return uploader.UploadFilePath(filepath, amount=max_size)
Exemplo n.º 5
0
    def _UploadFilePath(self, filepath):
        max_size = self.opts.max_size
        chunk_size = self.opts.chunk_size

        uploader = uploading.TransferStoreUploader(self.flow,
                                                   chunk_size=chunk_size)
        return uploader.UploadFilePath(filepath, amount=max_size)
Exemplo n.º 6
0
    def testLimitedAmount(self):
        action = FakeAction()
        uploader = uploading.TransferStoreUploader(action, chunk_size=3)

        with temp.AutoTempFilePath() as temp_filepath:
            with io.open(temp_filepath, "wb") as temp_file:
                temp_file.write(b"1234567890")

            blobdesc = uploader.UploadFilePath(temp_filepath, amount=5)

            self.assertEqual(action.charged_bytes, 5)
            self.assertLen(action.messages, 2)
            self.assertEqual(action.messages[0].item.data,
                             zlib.compress(b"123"))
            self.assertEqual(action.messages[1].item.data,
                             zlib.compress(b"45"))

            self.assertLen(blobdesc.chunks, 2)
            self.assertEqual(blobdesc.chunk_size, 3)
            self.assertEqual(blobdesc.chunks[0].offset, 0)
            self.assertEqual(blobdesc.chunks[0].length, 3)
            self.assertEqual(blobdesc.chunks[0].digest, Sha256(b"123"))
            self.assertEqual(blobdesc.chunks[1].offset, 3)
            self.assertEqual(blobdesc.chunks[1].length, 2)
            self.assertEqual(blobdesc.chunks[1].digest, Sha256(b"45"))
Exemplo n.º 7
0
  def testEmpty(self):
    action = FakeAction()
    uploader = uploading.TransferStoreUploader(action, chunk_size=3)

    with test_lib.AutoTempFilePath() as temp_filepath:
      blobdesc = uploader.UploadFilePath(temp_filepath)

      self.assertEqual(action.charged_bytes, 0)
      self.assertEqual(len(action.messages), 0)

      self.assertEqual(len(blobdesc.chunks), 0)
Exemplo n.º 8
0
  def testSingleChunk(self):
    action = FakeAction()
    uploader = uploading.TransferStoreUploader(action, chunk_size=6)

    with test_lib.AutoTempFilePath() as temp_filepath:
      with open(temp_filepath, "w") as temp_file:
        temp_file.write("foobar")

      blobdesc = uploader.UploadFilePath(temp_filepath)

      self.assertEqual(action.charged_bytes, 6)
      self.assertEqual(len(action.messages), 1)
      self.assertEqual(action.messages[0].item.data, zlib.compress("foobar"))

      self.assertEqual(len(blobdesc.chunks), 1)
      self.assertEqual(blobdesc.chunks[0].offset, 0)
      self.assertEqual(blobdesc.chunks[0].length, 6)
      self.assertEqual(blobdesc.chunks[0].digest, Sha256("foobar"))
Exemplo n.º 9
0
  def testIncorrectFile(self):
    action = FakeAction()
    uploader = uploading.TransferStoreUploader(action, chunk_size=10)

    with self.assertRaises(IOError):
      uploader.UploadFilePath("/foo/bar/baz")