def test_failed_upload_with_persistent_tracker(self):
     """
     Tests that failed resumable upload leaves a correct tracker URI file
     """
     harnass = CallbackTestHarnass()
     res_upload_handler = ResumableUploadHandler(
         tracker_file_name=self.tracker_file_name, num_retries=0)
     try:
         self.dst_key.set_contents_from_file(
             self.small_src_file,
             cb=harnass.call,
             res_upload_handler=res_upload_handler)
         self.fail('Did not get expected ResumableUploadException')
     except ResumableUploadException, e:
         # We'll get a ResumableUploadException at this point because
         # of CallbackTestHarnass (above). Check that the tracker file was
         # created correctly.
         self.assertEqual(e.disposition,
                          ResumableTransferDisposition.ABORT_CUR_PROCESS)
         self.assertTrue(os.path.exists(self.tracker_file_name))
         f = open(self.tracker_file_name)
         uri_from_file = f.readline().strip()
         f.close()
         self.assertEqual(uri_from_file,
                          res_upload_handler.get_tracker_uri())
示例#2
0
    def test_upload_with_invalid_upload_id_in_tracker_file(self):
        """
        Tests resumable upload with invalid upload ID
        """
        invalid_upload_id = ('http://pub.storage.googleapis.com/?upload_id='
            'AyzB2Uo74W4EYxyi5dp_-r68jz8rtbvshsv4TX7srJVkJ57CxTY5Dw2')
        tmpdir = self._MakeTempDir()
        invalid_upload_id_tracker_file_name = os.path.join(tmpdir,
            'invalid_upload_id_tracker')
        with open(invalid_upload_id_tracker_file_name, 'w') as f:
            f.write(invalid_upload_id)

        res_upload_handler = ResumableUploadHandler(
            tracker_file_name=invalid_upload_id_tracker_file_name)
        small_src_file_as_string, small_src_file = self.make_small_file()
        # An error should occur, but then the tracker URI should be
        # regenerated and the the update should succeed.
        small_src_file.seek(0)
        dst_key = self._MakeKey(set_contents=False)
        dst_key.set_contents_from_file(
            small_src_file, res_upload_handler=res_upload_handler)
        self.assertEqual(SMALL_KEY_SIZE, dst_key.size)
        self.assertEqual(small_src_file_as_string,
                         dst_key.get_contents_as_string())
        self.assertNotEqual(invalid_upload_id,
                            res_upload_handler.get_tracker_uri())
示例#3
0
 def test_failed_upload_with_persistent_tracker(self):
     """
     Tests that failed resumable upload leaves a correct tracker URI file
     """
     harness = CallbackTestHarness()
     tracker_file_name = self.make_tracker_file()
     res_upload_handler = ResumableUploadHandler(
         tracker_file_name=tracker_file_name, num_retries=0)
     small_src_file_as_string, small_src_file = self.make_small_file()
     small_src_file.seek(0)
     dst_key = self._MakeKey(set_contents=False)
     try:
         dst_key.set_contents_from_file(
             small_src_file, cb=harness.call,
             res_upload_handler=res_upload_handler)
         self.fail('Did not get expected ResumableUploadException')
     except ResumableUploadException, e:
         # We'll get a ResumableUploadException at this point because
         # of CallbackTestHarness (above). Check that the tracker file was
         # created correctly.
         self.assertEqual(e.disposition,
                          ResumableTransferDisposition.ABORT_CUR_PROCESS)
         self.assertTrue(os.path.exists(tracker_file_name))
         f = open(tracker_file_name)
         uri_from_file = f.readline().strip()
         f.close()
         self.assertEqual(uri_from_file,
                          res_upload_handler.get_tracker_uri())
    def test_upload_with_invalid_upload_id_in_tracker_file(self):
        """
        Tests resumable upload with invalid upload ID
        """
        invalid_upload_id = (
            'http://pub.storage.googleapis.com/?upload_id='
            'AyzB2Uo74W4EYxyi5dp_-r68jz8rtbvshsv4TX7srJVkJ57CxTY5Dw2')
        tmpdir = self._MakeTempDir()
        invalid_upload_id_tracker_file_name = os.path.join(
            tmpdir, 'invalid_upload_id_tracker')
        with open(invalid_upload_id_tracker_file_name, 'w') as f:
            f.write(invalid_upload_id)

        res_upload_handler = ResumableUploadHandler(
            tracker_file_name=invalid_upload_id_tracker_file_name)
        small_src_file_as_string, small_src_file = self.make_small_file()
        # An error should occur, but then the tracker URI should be
        # regenerated and the the update should succeed.
        small_src_file.seek(0)
        dst_key = self._MakeKey(set_contents=False)
        dst_key.set_contents_from_file(small_src_file,
                                       res_upload_handler=res_upload_handler)
        self.assertEqual(SMALL_KEY_SIZE, dst_key.size)
        self.assertEqual(small_src_file_as_string,
                         dst_key.get_contents_as_string())
        self.assertNotEqual(invalid_upload_id,
                            res_upload_handler.get_tracker_uri())
 def test_upload_with_invalid_upload_id_in_tracker_file(self):
     """
     Tests resumable upload with invalid upload ID
     """
     res_upload_handler = ResumableUploadHandler(
         tracker_file_name=self.invalid_upload_id_tracker_file_name)
     # An error should occur, but then the tracker URI should be
     # regenerated and the the update should succeed.
     self.dst_key.set_contents_from_file(
         self.small_src_file, res_upload_handler=res_upload_handler)
     self.assertEqual(self.small_src_file_size, self.dst_key.size)
     self.assertEqual(self.small_src_file_as_string,
                      self.dst_key.get_contents_as_string())
     self.assertNotEqual(self.invalid_upload_id,
                         res_upload_handler.get_tracker_uri())
示例#6
0
 def test_upload_with_invalid_upload_id_in_tracker_file(self):
     """
     Tests resumable upload with invalid upload ID
     """
     res_upload_handler = ResumableUploadHandler(
         tracker_file_name=self.invalid_upload_id_tracker_file_name)
     # An error should occur, but then the tracker URI should be
     # regenerated and the the update should succeed.
     self.dst_key.set_contents_from_file(
         self.small_src_file, res_upload_handler=res_upload_handler)
     self.assertEqual(self.small_src_file_size, self.dst_key.size)
     self.assertEqual(self.small_src_file_as_string,
                      self.dst_key.get_contents_as_string())
     self.assertNotEqual(self.invalid_upload_id,
                         res_upload_handler.get_tracker_uri())